leetcode: 2129. 将标题首字母大写

这篇具有很好参考价值的文章主要介绍了leetcode: 2129. 将标题首字母大写。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

给你一个字符串 title ,它由单个空格连接一个或多个单词组成,每个单词都只包含英文字母。请你按以下规则将每个单词的首字母 大写 :

  • 如果单词的长度为 1 或者 2 ,所有字母变成小写。
  • 否则,将单词首字母大写,剩余字母变成小写。

请你返回 大写后 的 title 。

示例 1:

输入:title = “capiTalIze tHe titLe”

输出:“Capitalize The Titile”

解释: 由于所有单词的长度都至少为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,所以其他单词首字母大写,剩余字母小写。

 

首先我们先将所有单词转为小写,然后我们需要将长度大于2的单词的首字母大写,我们可以遍历字符串title,将字母转为小写加入结果,如果当前字符式空格‘ ’,则说明已经到一个单词的末尾,我们需要一个变量preIdx记录当前单词的首字母下标,判断是否需要将其变为大写(满足条件当前下表-preIdx>2),之后将preIdx赋值成下一个单词首字母的下标(preIdx = 当前下标 + 1),当遍历完字符串之后,我们还要在做一次变大写处理,因为最后一个单词还未处理。

实现代码如下:文章来源地址https://www.toymoban.com/news/detail-838696.html

 1 class Solution {
 2     public String capitalizeTitle(String title) {
 3         final StringBuilder stringBuilder = new StringBuilder();
 4         int preIdx = 0;
 5         for (int i = 0; i < title.length(); i++) {
 6             final char c = title.charAt(i);
 7             stringBuilder.append(Character.toLowerCase(c));
 8             if (c == ' ') {
 9                 if (i - preIdx > 2) {
10                     stringBuilder.setCharAt(preIdx, Character.toUpperCase(stringBuilder.charAt(preIdx)));
11                 }
12                 preIdx = i + 1;
13             }
14         }
15         if (title.length() - preIdx > 2) {
16             stringBuilder.setCharAt(preIdx, Character.toUpperCase(stringBuilder.charAt(preIdx)));
17         }
18         return stringBuilder.toString();
19     }
20 }

到了这里,关于leetcode: 2129. 将标题首字母大写的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包