码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode-22-string

时间:2017-04-24 14:10:17      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:longest   string   注意   long   mon   思路   size   i++   his   

 521. Longest Uncommon Subsequence I

find the longest uncommon subsequence of this group of two strings

技术分享

解题思路:

因为求的是最长uncommon subsequence的长度,所以,如果ab长度不等,应返回长度较大值;ab相同,则返回-1;否则返回长度即可。

int findLUSlength(string a, string b) {
        if (a == b)
            return -1;
        if (a.size() != b.size())
            return a.size() > b.size() ? a.size() : b.size();
        return a.size();
    }

392. Is Subsequence

Given a string s and a string t, check if s is subsequence of t.

技术分享

解题思路:直接扫一遍t检查就好了。。注意,如果s已经找完,应该跳出循环,不然会runtime error

bool isSubsequence(string s, string t) {
        int i, j;
        for (i = 0, j = 0; i < t.length(); i++) {
            if (j == s.length())
                break;
            if (t[i] == s[j])
                j++;
        }
        return j == s.length();
    }

 541. Reverse String II

技术分享

解题思路:

其实是以2k为一组,翻转前i个(i<=k)。所以对于长度为2k的正常翻转,最后一组考虑长度<k的情况。另外,对于k>s.length()时,要翻转

整个s。

string reverseStr(string s, int k) {
        if (s.length() < 2 || k == 0 )
            return s;
        string result = s;
        bool flag = false;
        int i;
        if (s.length() <= k) {
            flag = true;
            i = 0;
        }
        //int i;
        if (flag == false) {
        for (i = 0; i < s.length(); i = i + 2 * k) {
            int m = i;
            int n = i + k - 1;
            if (n >= s.length()) {
                flag = true;
                break;
            }
            int temp;
            while (m <= n) {
                temp = result[m];
                result[m] = result[n];
                result[n] = temp;
                m ++;
                n --;
            }
        }
        }
        if (flag == true) {
                int m = i;
                int n = s.length()-1;
                int temp;
            while (m <= n) {
                temp = result[m];
                result[m] = result[n];
                result[n] = temp;
                m ++;
                n --;
            }
            }
        return result;
    }

  

 

leetcode-22-string

标签:longest   string   注意   long   mon   思路   size   i++   his   

原文地址:http://www.cnblogs.com/pxy7896/p/6707563.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!