zoukankan      html  css  js  c++  java
  • [leetCode]58.最后一个单词的长度

    在这里插入图片描述

    解法一

    先去除字符串首尾空格,再遍历整个字符串:

    • 如果为‘ ’ 则为一个新词开始,计数器置0
    • 否则计数器+1
    • 返回计数器的值
    class Solution {
        public int lengthOfLastWord(String s) {
            int left = 0, right = s.length() - 1,  ans = 0;;
            while(left < right && s.charAt(left)==' ') ++left;
            while(left < right && s.charAt(right)==' ') --right;
            for(int i = left; i <= right; i++){
                if(s.charAt(i)==' ')
                    ans = 0;
                else ++ans;
            }
            return ans;
        }
    }
    

    解法二

    遍历整个字符串,如果遇到非空字符,只需判断前一个字符是否为' '

    • 是:新词开始,计数器置1;
    • 否: 不是新词,计数器+1;

    由于i=0时无法判断前一个字符是否为' '所以需要加以判断,i=0时计数器+1

    class Solution {
        public int lengthOfLastWord(String s) {
           int ans = 0;
           for(int i = 0; i < s.length(); i ++){
               if(s.charAt(i) != ' '){
                   if(i != 0 && s.charAt(i - 1) == ' ')ans = 1;
                   else ans++;
               }
           }
           return ans;
        }
    }
    

    解法三

    因为只关心最后一个单词的长度,所以只需从后向前遍历

    class Solution {
        public int lengthOfLastWord(String s) {
           int right = s.length() - 1, ans = 0;
           while(right >= 0 && s.charAt(right) == ' ')--right;
           while(right >= 0 && s.charAt(right) != ' '){
               --right;
               ++ans;
           }
           return ans;
        }
    }
    
  • 相关阅读:
    moco-globalsettings
    moco-简述
    stub和mock
    软件测试工作经验分享
    类、对象、方法、属性和实例变量
    你真的对 parseInt有足够的了解吗?
    PhoneGap开发环境搭建(记录一下,仅仅针对Android)
    360 前端面试题
    前端WEB开发工程师面试题-基础部分
    有意思的For循环
  • 原文地址:https://www.cnblogs.com/PythonFCG/p/13860022.html
Copyright © 2011-2022 走看看