龙空技术网

使用Kimi刷leecode之将标题首字母大写

程序员爱吃饭 34

前言:

今天兄弟们对“java字符串首字母大写方法”大约比较关怀,同学们都想要了解一些“java字符串首字母大写方法”的相关文章。那么小编也在网上搜集了一些关于“java字符串首字母大写方法””的相关文章,希望朋友们能喜欢,小伙伴们快快来学习一下吧!

给kimi的提示语

给你一个字符串 title ,它由单个空格连接一个或多个单词组成,每个单词都只包含英文字母。请你按以下规则将每个单词的首字母 大写 : 如果单词的长度为 1 或者 2 ,所有字母变成小写。 否则,将单词首字母大写,剩余字母变成小写。 请你返回 大写后 的 title 。

示例 1: 输入:title = "capiTalIze tHe titLe" 输出:"Capitalize The Title"

解释: 由于所有单词的长度都至少为 3 ,将每个单词首字母大写,剩余字母变为小写。

示例 2: 输入:title = "First leTTeR of EACH Word" 输出:"First Letter of Each Word"

解释: 单词 "of" 长度为 2 ,所以它保持完全小写。 其他单词长度都至少为 3 ,所以其他单词首字母大写,剩余字母小写。

示例 3: 输入:title = "i lOve leetcode" 输出:"i Love Leetcode"

解释: 单词 "i" 长度为 1 ,所以它保留小写。 其他单词长度都至少为 3 ,所以其他单词首字母大写,剩余字母小写。 请使用java和golang实现

向Kimi提问

Kimi回答Java实现

public class CapitalizeTitle {    public static String capitalizeTitle(String title) {        String[] words = title.split(" ");        StringBuilder result = new StringBuilder();                for (String word : words) {            if (word.length() <= 2) {                result.append(word.toLowerCase()).append(" ");            } else {                result.append(word.substring(0, 1).toUpperCase())                       .append(word.substring(1).toLowerCase()).append(" ");            }        }                return result.toString().trim();    }    public static void main(String[] args) {        String title1 = "capiTalIze tHe titLe";        System.out.println(capitalizeTitle(title1)); // 输出:"Capitalize The Title"        String title2 = "First leTTeR of EACH Word";        System.out.println(capitalizeTitle(title2)); // 输出:"First Letter of Each Word"        String title3 = "i lOve leetcode";        System.out.println(capitalizeTitle(title3)); // 输出:"i Love Leetcode"    }}
Go实现
package mainimport (	"fmt"	"strings"	"unicode")func capitalizeTitle(title string) string {	words := strings.Split(title, " ")	var result []string	for _, word := range words {		if len(word) <= 2 {			result = append(result, strings.ToLower(word))		} else {			result = append(result, strings.ToUpper(string(word[0]))+strings.ToLower(word[1:]))		}	}	return strings.Join(result, " ")}func main() {	title1 := "capiTalIze tHe titLe"	fmt.Println(capitalizeTitle(title1)) // 输出:"Capitalize The Title"	title2 := "First leTTeR of EACH Word"	fmt.Println(capitalizeTitle(title2)) // 输出:"First Letter of Each Word"	title3 := "i lOve leetcode"	fmt.Println(capitalizeTitle(title3)) // 输出:"i Love Leetcode"}
实现思路使用split函数将输入的字符串title按空格分割成单词数组。遍历每个单词,根据单词的长度应用不同的转换规则:如果单词长度小于等于2,将整个单词转换为小写。否则,将单词的首字母转换为大写,其余部分转换为小写。使用StringBuilder(Java)或切片(Go)来构建结果字符串。最后,将结果字符串的元素使用一个空格连接起来,并返回。

这个方法正确处理了每个单词的大小写转换,并符合给定的规则。

Kimi回答截图

总结:这次Kimi给出了完整的代码,并且提交测试通过,和官方解题思路基本一致。

标签: #java字符串首字母大写方法