zoukankan      html  css  js  c++  java
  • leetcode Length of Last Word

    题目:给定一个只包含大小写字母和空格的字符串。返回最后一个单词的长度。“abc  a” 是1  “abc      ”是3

    两种思路,一个从头往后,一个从后往前。

    1.从头往后的话,需要记住空格前的一个单词是多长,如果空格到尾了,就输出记录的值,如果空格之后还有单词,就重新计数。用flag记录知否遇到空格。

    class Solution {
    public:
        int lengthOfLastWord(const char *s) 
        {
            int flag = 0, cnt = 0;
            while(*s != '')
            {
                if (flag) {cnt = 0; flag = 0;}
                while (*s != '' && *s != ' ') {cnt++;s++;}
                while (*s != '' && *s == ' ') {s++;flag = 1;}
            }
            return cnt;
        }
    };

    2.从后往前,先确定最后一个指针,然后一直往前碰到第一个单词之后的空格就返回。

    class Solution {
    public:
        int lengthOfLastWord(const char *s) 
        {
            const char *p = s + strlen(s) - 1;
            int cnt = strlen(s), t = 0;
            while(cnt > 0)
            {
                if (*p == ' ') {p--; cnt--;continue;}
                if (cnt > 0 && *p != ' ')
                {
                    while(cnt > 0 && *p != ' ')
                    {
                        t++;cnt--;p--;
                    }
                    return t;
                }
            }
            return 0;
        }
    };
  • 相关阅读:
    0918作业-----所有数值未做合法性检测
    尝试安装和配置JDK,并给出安装、配置JDK的步骤
    java为什么可以跨平台执行
    字符集
    java 入门及简介
    时间轴特效
    javascript简介
    javascript while循环
    Javascript for循环
    函数豹子问题
  • 原文地址:https://www.cnblogs.com/higerzhang/p/4075012.html
Copyright © 2011-2022 走看看