leetcode记录-字符串系列

原创 2016年06月01日 08:41:03

3Longest Substring Without Repeating Characters(medium)

题意:Given “pwwkew”, the answer is “wke”, with the length of 3. Note that the answer must be a substring。注意了,这道题是求最长的子字符串的长度,而不是序列

思路1:每次循环判断都是独立,不利用前面判断过的信息。利用一个256大小数组,如果有字符出现两次终止当次循环,判断max_length长度。进行n次这样的循环

思路2:利用前面判断的信息。

        for(end=1;end<n;end++)
        {
            flag=0;
            for(now=begin;now<end;now++)
            {
                if(s[now]==s[end])
                {
                    max_length=max(max_length,end-begin);
                    begin=now+1;
                    flag=1;
                    break;

                }
            }
            if(flag==0)
            {
                max_length=max(max_length,end-begin+1);
            }
        }

5 Longest Palindromic Substring(最长的回文子串)(medium)

思路1:中心扩展法

分为回文子串长度为奇数
回文子串长度为偶数
中心从i=1:n-1,可以得到以i为中心的最长的回文子串的长度

思路2:动态规划法

用一个n*n矩阵保存子串Si,j是否是回文子串
Si,j=0 if(ai!=aj || Si+1,j-1==0)
Si,j=1 if(ai==aj && Si+1,j-1==1)
先要将矩阵Si,i保存为1,Si,j+1的值求出,在进行后续操作

6 ZigZag Conversion (easy)

题意:Z字形表示输入的字符串,按照行得到要求的字符串

思路:这道题其实质就是找规律的题目,自己在纸上可以得到其规律。Z形为n行,r=2*n-2就是一个循环。第一行和最后一行在一个循环中只有一个数字,中间的行数有两个数字。 所以要分三种情况考虑(1)第一行,是s[0] s[r] s[2*r]…..
(2)中间行,s[i],s[r-i],s[r+i],s[2*r-i]…..
(3)最后一行,s[n-1],s[r+n-1],s[2*r+n-1]…..

10Regular Expression Matching(hard)
这道题,正则表达式匹配。规则:. 代表任意的一个字符 * 匹配前面字符0个1个或多个.难点就是在于*的匹配

思路:string s, string p
当p为空时,返回s是否为空的bool值
当s为空时,判断p[1]==’*’ true isMatch(s,p.substr(2)); false, return false;

当p.length()>=2 && p[1]==’*’

while(s.length()>0&&p.length()>0 &&(s[0]==p[0] ||p[0]=='.'))
            {
                if(isMatch(s,p.substr(2)))
                    return true;
                s=s.substr(1);
            }
            return isMatch(s,p.substr(2));

else

 if(p[0]!='.' && p[0]!=s[0])
                return false;
            else
                return isMatch(s.substr(1),p.substr(1));
版权声明:本文为博主原创文章,未经博主允许不得转载。

leetcode 二叉树系列搞定

偶尔做几个题这样也就慢慢把leetcode上二叉树系列的题目做完了,一共26个题(sigh...一个收费题没刷) , 二叉树系列的题最普遍的解法就是递归了,所以一般先往递归上想就okay了~ 非递归算...
  • zxasqwedc
  • zxasqwedc
  • 2014年12月09日 10:34
  • 984

Leetcode字符串类题目

13. Roman to Integer:Easy。不熟悉罗马字。 344. Reverse String:Easy。双指针。 345. Reverse Vowels of a String:Eas...
  • sjt091110317
  • sjt091110317
  • 2016年05月04日 15:33
  • 969

leetcode之压缩字符串中的重复字符

题目 通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出现的重复字母进行压缩,并输出压缩后的字符串。 压缩规则: 1、仅压缩连续重复出现的字符。比...
  • mween
  • mween
  • 2017年08月13日 16:25
  • 295

leetcode算法总结之字符串除空格操作

给定字符串(ASCII码0-255)数组,请在不开辟额外空间的情况下删除开始和结尾处的空格,并将中间的多个连续的空格合并成一个。例如:"   i    am a      little boy.   ...
  • YSBJ123
  • YSBJ123
  • 2016年07月13日 17:24
  • 608

Leetcode.寻找不重复的最长子字符串

题号:3 原题:Longest Substring Without Repeating CharactersGiven a string, find the length of the longes...
  • Yiigel
  • Yiigel
  • 2017年01月18日 21:17
  • 361

leetcode 443. String Compression(字符串压缩)

leetcode 443. String Compression(字符串压缩)
  • Shauna_Wu
  • Shauna_Wu
  • 2018年01月08日 17:17
  • 166

leetcode 关于全排列题目的简单总结

266 Palindrome Permutation  52.6%   Easy 46 Permutations 37...
  • menghan1224
  • menghan1224
  • 2016年08月21日 22:18
  • 1430

Leetcode Scramble String 搜索乱序字符

好困难的一题,自己研究出来了,不过很难确定是什么判断条件结束,所以耽误了不少时间。 一看样子就知道使用递归无疑了。 主要卡我时间最长的是递归的时候需要交叉递归的,因为根的两个子树以及下面的所有子树都是...
  • kenden23
  • kenden23
  • 2013年12月28日 07:55
  • 1995

LeetCode 87. Scramble String(字符串扰乱)

原题网址:https://leetcode.com/problems/scramble-string/ Given a string s1, we may represent it as a b...
  • jmspan
  • jmspan
  • 2016年05月23日 00:34
  • 487

最长回文字串 (LEETCODE: Longest Palindromic Substring)

根据回文的特征,从字符串中某个位置(或某两个位置)为中心,向两边开始分析。直至找到最长的回文串。   string longestPalindrome(string s) { //中心扩展法 ...
  • u014221279
  • u014221279
  • 2016年03月29日 16:32
  • 199
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:leetcode记录-字符串系列
举报原因:
原因补充:

(最多只允许输入30个字)