原题链接在这里:https://leetcode.com/problems/number-of-segments-in-a-string/
题目:
Count the number of segments in a string, where a segment is defined to be a contiguous sequence of non-space characters.
Please note that the string does not contain any non-printable characters.
Example:
Input: "Hello, my name is John" Output: 5
题解:
使用trim 和 split的到结果.
s = ""时split后的array length 是1.
s开始有空格, e.g. " bc", split后长度是2, ["", "bc"]. 但结束为空格, e.g. "bc ", split 后长度为1, ["bc"].
Time Complexity: O(n), n = s.length(), split用时.
Space: O(n), split后array大小.
AC Java:
1 public class Solution { 2 public int countSegments(String s) { 3 String trimS = s.trim(); 4 if(trimS.length() == 0){ 5 return 0; 6 } 7 return trimS.split("\s+").length; 8 } 9 }
当前char不等于' '时,要么当前index为0或者前一位char等于' ', res++.
Time Complexity: O(n). Space: O(1).
AC Java:
1 public class Solution { 2 public int countSegments(String s) { 3 int res = 0; 4 for(int i = 0; i<s.length(); i++){ 5 if(s.charAt(i) != ' ' && (i == 0 || s.charAt(i-1) == ' ')){ 6 res++; 7 } 8 } 9 return res; 10 } 11 }