zoukankan      html  css  js  c++  java
  • leetcode-58.最后一个单词的长度

    leetcode-58.最后一个单词的长度

    题意

    给定一个仅包含大小写字母和空格 ' ' 的字符串,返回其最后一个单词的长度。

    如果不存在最后一个单词,请返回 0 。

    说明:一个单词是指由字母组成,但不包含任何空格的字符串。

    示例:

    输入: "Hello World"
    输出: 5
    
    输入: "a"
    输出: 1

    输入: "a b c "
    输出: 1

    算法

    1. 反向遍历字符串
    2. 如果存在字符不是空格,从此开始计数直到碰到下一个空格;
    3. 否则,返回0.。

    code

     1 class Solution {
     2 public:
     3     int lengthOfLastWord(string s) {
     4         int ans = 0;
     5         for(int i=s.length()-1; i>=0; i--)
     6         {
     7             if(s[i] != ' ')
     8             {
     9                 while(s[i] != ' ')
    10                 {
    11                     ans++;
    12                     i--;
    13                     if(i < 0)
    14                     {
    15                         break;
    16                     }
    17                 }
    18                 break; 
    19             } 
    20         }
    21         return ans;
    22     }
    23 };

     上面代码有些乱,最近更新了一版

    源码

    算法

    1. while循环去掉字符串末尾的所有空格

    2. while循环统计最后单词长度(不是空格的累加,遇到空格跳出返回)

     1 class Solution {
     2 public:
     3     int lengthOfLastWord(string s) {
     4         int len = s.length();
     5         if(len == 0)
     6             return len;
     7         
     8         int res = 0, i = len-1;
     9         while(s[i] == ' ' && i >= 0)
    10             i--;
    11         while(s[i] != ' '&& i >= 0)
    12         {
    13             res++;
    14             i--;
    15         }
    16             
    17         return res;
    18     }
    19 };
  • 相关阅读:
    微信端video去除最顶层播放
    MVC错误页面相关说明
    sublime使用
    linux或Mac下手动回滚代码
    用Python操作git命令
    利用pyinstaller打包加密Python项目
    进程、线程和协程的结合使用
    模块导入失败问题
    递归调用解压zip包或rar包
    随机验证码&发红包
  • 原文地址:https://www.cnblogs.com/yocichen/p/10293501.html
Copyright © 2011-2022 走看看