/* * @lc app=leetcode.cn id=434 lang=c * * [434] 字符串中的单词数 * * https://leetcode-cn.com/problems/number-of-segments-in-a-string/description/ * * algorithms * Easy (29.13%) * Total Accepted: 4.2K * Total Submissions: 14.2K * Testcase Example: ‘"Hello, my name is John"‘ * * 统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。 * * 请注意,你可以假定字符串里不包括任何不可打印的字符。 * * 示例: * * 输入: "Hello, my name is John" * 输出: 5 * * */ int countSegments(char* s) { if(s==NULL||strlen(s)==0) return 0; int i=0,j,count=0; while(i<strlen(s)){ while(i<strlen(s)&&s[i]==‘ ‘) i++;//i每次移到第一个非空格处 j = i; while(j<strlen(s)&&s[j]!=‘ ‘)j++;//j每次移到第一个空格处,i和j之间就是一个单词 if(i<j){ i=j; count++; } else { return count;//当最后一个单词后面有空格时,从此出口结束。 } } return count;//当最后一个单词后面没有空格时,从此出口结束。 }
思路是 双指针,i找到第一个非空格字符,j从i的位置开始找到第一个为空格的字符,i<j,那么ij之间的就是一个单词,计数就加一,然后i移动到j的位置进行下一次寻找。
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
python:
# # @lc app=leetcode.cn id=434 lang=python3 # # [434] 字符串中的单词数 # # https://leetcode-cn.com/problems/number-of-segments-in-a-string/description/ # # algorithms # Easy (29.13%) # Total Accepted: 4.2K # Total Submissions: 14.2K # Testcase Example: ‘"Hello, my name is John"‘ # # 统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。 # # 请注意,你可以假定字符串里不包括任何不可打印的字符。 # # 示例: # # 输入: "Hello, my name is John" # 输出: 5 # # # class Solution: def countSegments(self, s: str) -> int: return len(s.split())
python就很简单了。一个split搞定。
原文地址:https://www.cnblogs.com/lixiaoyao123/p/10564208.html
时间: 2024-10-09 21:14:03