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;
        }
    };
  • 相关阅读:
    前端工程化
    前端模块化CommonJS&ES6
    为什么浮点型运算结果会有误差?
    RequestAnimationFrame知多少?
    CSS三栏布局
    秋招面试
    实现Storage
    Angular
    TypeScript
    微服务架构设计模式
  • 原文地址:https://www.cnblogs.com/higerzhang/p/4075012.html
Copyright © 2011-2022 走看看