leetcode-15-basic-string

Posted pxy7896

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode-15-basic-string相关的知识,希望对你有一定的参考价值。

58. Length of Last Word

解题思路:

从结尾向前搜索,空格之前的就是最后一个词了。写的时候我考虑了尾部有空格的情况。需要注意的是,测试用例中有" "的情况,此时应返回0。

int lengthOfLastWord(string s) {
        if (s.length() == 0 || s.length() == 1 && s[0] == \' \')
            return 0;
        if (s.length() == 1 && s[0] != \' \')
            return 1;
        int i;
        int count = 0;
        bool flag = false;
        for (i = s.length() - 1; i >= 0; i--) {
            if (s[i] == \' \') {
                if (flag == false)
                    continue;
                else 
                    break;
            }
            if (s[i] != \' \') {
                if (flag == false)
                    flag = true;
                count++;
            }
        }
        return count;
    }  

 338. Counting Bits

解题思路:

这道题想了好久。。思路是当前数i与i-1按位做与操作,这样可以找到最长相同前缀的地方,从那个位置之后,i-1的为0,i的为1且后面都是0,所以只要

取这个数的1的个数再加1就可以了。例如:

1011 0011 1

1011 0100 0

所以只要知道1011 0000 0处1的个数,再加1即可。用vector存好即可。

vector<int> countBits(int num) {
        vector<int> result(num+1, 0);
        if (num == 0)
            return result;
        for (int i = 1; i < num + 1; i++) {
            result[i] = result[i & (i - 1)] + 1;
        }
        return result;
    }

 

以上是关于leetcode-15-basic-string的主要内容,如果未能解决你的问题,请参考以下文章

R留学生作业代码代写代编程代编程代编程

IPEX-1代/3代/4代/5代,PCB天线底座,公头,样式及封装尺寸图

JVM 年轻代 老年代 持久代 gc

深圳本地网店代运营公司

C线程代业代写代调试POSIX Threads代编码

jvm中的年轻代 老年代 持久代 gc