434. 字符串中的单词数

思路

先去掉左右空格
如果是连续空格也需要处理

代码

  1. /**
  2. * @param {string} s
  3. * @return {number}
  4. */
  5. var countSegments = function(s) {
  6. s = s.trim();
  7. if (!s) return 0;
  8. let ret = 1;
  9. for(let i = 0; i < s.length; i ++) {
  10. while(s[i] === s[i-1] && s[i] === ' ') i ++;
  11. if (s[i] === ' ') ret ++
  12. }
  13. return ret;
  14. };

复杂度分析

时间复杂度 单词 - 图1#card=math&code=O%28N%29)
空间复杂度 单词 - 图2#card=math&code=O%281%29)

58. 最后一个单词的长度

思路

先清理掉2端的空格
再从后往前遍历,遇到空格退出

代码

  1. /**
  2. * @param {string} s
  3. * @return {number}
  4. */
  5. var lengthOfLastWord = function(s) {
  6. s = s.trim();
  7. let ret = 0;
  8. for(let i = s.length - 1; i >= 0; i --) {
  9. if (s[i] === ' ') {
  10. return ret;
  11. }
  12. ret ++
  13. }
  14. return ret;
  15. };

复杂度分析

时间复杂度 单词 - 图3#card=math&code=O%28N%29)
空间复杂度 单词 - 图4#card=math&code=O%281%29)