Numberofwordsinastring题目描述:统计一个字符串中的单词个数,这里的单词指的是不是空格的连续字符。请注意,您可以假设该字符串不包含任何不可打印的字符。例子见LeetCode官网。来源:LeetCode链接:https://leetcode-cn.com/probl...版权归LeetCode所有。商业转载请联系官方授权,非商业转载请注明出处。方案一:字符串遍历首先,如果s为null或者s为空字符串,直接返回0。否则声明一条count记录中的字数初始化为0,lastChar记录中前一个字符的初始值为空格字符,然后遍历s中的字符c。处理过程如下:如果c和lastChar都是空格,目前不可能是单词,跳过;如果前一个字符是空格,当前字符不是空格,那么当前字符是一个词的开头,加一计数,更新lastChar为当前字符;如果前一个字符和当前字符都不是空格,则跳过;如果前一个字符不是空格而当前字符是空格,则前一个字符是前一个单词的最后一个字符。将lastChar更新为当前字符。最后,返回count是字符串s中的单词数。/***@Author:ck*@Date:2021/9/298:51pm*/publicclassLeetCode_434{publicstaticintcountSegments(Strings){if(s==null||s.length()==0){返回0;}整数计数=0;charlastChar='';for(charc:s.toCharArray()){if(lastChar==''&&c==''){//if上面如果一个字符和当前字符都是空格,跳过继续;}elseif(lastChar==''&&c!=''){//如果前一个字符是空格,当前字符不是空格,则当前字符是一个单词的开头,加一个计数,并更新lastChar为当前字符lastChar=c;计数++;}elseif(lastChar!=''&&c!=''){//如果前一个字符和当前字符都不是空格,则跳过继续;}elseif(lastChar!=''&&c==''){//如果前一个字符不是空格,当前字符是空格,则最后一个字符是前一个单词的最后一个字符.更新lastChar为当前字符lastChar=c;}}返回计数;}publicstaticvoidmain(String[]args){//预期输出:5}}【每日一语】坚持最重要,最难,最成功。
