LeetCode解法汇总2129. 将标题首字母大写

目录链接:

力扣编程题-解法汇总_分享+记录-CSDN博客

GitHub同步刷题项目:

https://github.com/September26/java-algorithms

原题链接:. - 力扣(LeetCode)


描述:

给你一个字符串 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 ,所以其他单词首字母大写,剩余字母小写。

提示:

  • 1 <= title.length <= 100
  • title 由单个空格隔开的单词组成,且不含有任何前导或后缀空格。
  • 每个单词由大写和小写英文字母组成,且都是 非空 的。

解题思路:

比较简单,先分割成单词,然后逐个单词转换,最后拼接回字符串。

代码:

class Solution {
public:
    std::string transformWord(std::string word)
    {
        if (word.size() <= 2)
        {
            std::transform(word.begin(), word.end(), word.begin(), ::tolower);
            return word;
        }
        string result;
        for (int i = 0; i < word.size(); i++)
        {
            if (i == 0)
            {
                result += toupper(word[i]);
            }
            else
            {
                result += tolower(word[i]);
            }
        }
        return result;
    }

    string capitalizeTitle(string title)
    {
        if (title.empty())
        {
            return "";
        }
        std::istringstream iss(title);
        std::vector<std::string> words;
        std::string word;
        while (iss >> word)
        {
            words.push_back(transformWord(word));
        }

        std::string transformedTitle = words.front();
        for (size_t i = 1; i < words.size(); ++i)
        {
            transformedTitle += " " + words[i];
        }
        return transformedTitle;
    }
};

最近更新

  1. TCP协议是安全的吗?

    2024-03-11 21:36:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-11 21:36:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-11 21:36:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-11 21:36:03       18 阅读

热门阅读

  1. 【SQL实用技巧】-- 分组内求topN问题

    2024-03-11 21:36:03       19 阅读
  2. 全方位理解架构

    2024-03-11 21:36:03       20 阅读
  3. Spring AOP

    2024-03-11 21:36:03       20 阅读
  4. web蓝桥杯真题:展开你的扇子

    2024-03-11 21:36:03       18 阅读
  5. linux 环境变量

    2024-03-11 21:36:03       23 阅读
  6. Vue3:toRef和toRefs的用法

    2024-03-11 21:36:03       22 阅读
  7. 【C++】【设计模式的六大原则】

    2024-03-11 21:36:03       23 阅读
  8. 深入理解Redis:工程师的使用指南

    2024-03-11 21:36:03       19 阅读
  9. 【备忘录】docker清理指令

    2024-03-11 21:36:03       19 阅读