字串中的單詞數
題目描述:統計字串中的單詞個數,這裡的單詞指的是連續的不是空格的字元。
請注意,你可以假定字串裡不包括任何不可列印的字元。
示例說明請見LeetCode官網。
來源:力扣(LeetCode)
連結:https://leetcode-cn.com/probl...
著作權歸領釦網路所有。商業轉載請聯絡官方授權,非商業轉載請註明出處。
解法一:字串遍歷
首先,如果s為null或者s為空字串,則直接返回0。
否則,宣告一個count記錄單詞數量初始化為0,lastChar記錄上一個字元初始值為空格字元,然後遍歷s中的字元c,處理過程如下:
- 如果c和lastChar都是空格,則當前不可能是單詞,跳過;
- 如果上一個字元是空格,當前字元不是空格,則當前字元是一個單詞的開始,count加一,並且將lastChar更新為當前字元;
- 如果上一個字元和當前字元都不是空格,則跳過;
- 如果上一個字元不是空格,而當前字元是空格,則上一個字元是上一個單詞的最後一個字元。將lastChar更新為當前字元。
最後,返回count即為字串s中的單詞數。
/**
* @Author: ck
* @Date: 2021/9/29 8:51 下午
*/
public class LeetCode_434 {
public static int countSegments(String s) {
if (s == null || s.length() == 0) {
return 0;
}
int count = 0;
char lastChar = ' ';
for (char c : s.toCharArray()) {
if (lastChar == ' ' && c == ' ') {
// 如果上一個字元和當前字元都是空格,則跳過
continue;
} else if (lastChar == ' ' && c != ' ') {
// 如果上一個字元是空格,當前字元不是空格,則當前字元是一個單詞的開始,count加一,並且將lastChar更新為當前字元
lastChar = c;
count++;
} else if (lastChar != ' ' && c != ' ') {
// 如果上一個字元和當前字元都不是空格,則跳過
continue;
} else if (lastChar != ' ' && c == ' ') {
// 如果上一個字元不是空格,而當前字元是空格,則上一個字元是上一個單詞的最後一個字元。將lastChar更新為當前字元
lastChar = c;
}
}
return count;
}
public static void main(String[] args) {
// 期望輸出: 5
System.out.println(countSegments("Of all the gin joints in all the towns in all the world, "));
}
}
【每日寄語】 貴在堅持、難在堅持、成在堅持。