持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第17天,点击查看活动详情
一、题目描述:
统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。
请注意,你可以假定字符串里不包括任何不可打印的字符。
示例:
输入: "Hello, my name is John"
输出: 5
解释: 这里的单词是指连续的不是空格的字符,所以 "Hello," 算作 1 个单词。
二、思路分析:
遍历字符串,根据需求的描述,
1、判断字符串长度,当字符串长度为0时,直接返回0
2、我认为在遍历过程中,当第i个字符不是空格,但第i+1个数是空格时,则计数器加1
(空格的ASCLL码是32).
3、上一步做法其实只是记录了两个单词间的空格数量,实际上的单词会比这个空格数量多1,
所以在遍 历完之后只要判定字符串最后一个字符不是空格,那就还要给计数器加1
三、AC 代码:
class Solution {
public int countSegments(String s) {
//判断字符串的长度
if (s.length() == 0){
return 0;
}
//遍历字符串并更新计数器
int counter = 0;
for (int i = 0; i < s.length()-1; i++) {
if ((int)s.charAt(i) != 32 && (int)s.charAt(i+1) == 32){
counter += 1;
}
}
if ((int)s.charAt(s.length()-1) != 32){
counter += 1;
}
return counter;
}
}
范文参考:
【微扰理论】先读取连续的空格 再 读取连续的非空格 - 字符串中的单词数 - 力扣(LeetCode)
434. 字符串中的单词数##超简单思路## - 字符串中的单词数 - 力扣(LeetCode)
【依旧是String的本质char[]】从char数组层面来一次遍历判断分割数 - 字符串中的单词数 - 力扣(LeetCode)