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] Valid Anagram - 字符串排序比较系列

题目概述:字符串处理类型 主要讲述sort排序方法和计算字母个数的方法 Given two strings s and t, write a function to determine if t is...

leetcode系列(17)Isomorphic Strings 同构字符串

Given two strings s and t, determine if they are isomorphic. Two strings are isomorphic if the ch...
  • macchan
  • macchan
  • 2015年07月12日 11:51
  • 498

LeetCode系列字符串操作(一)ZigZag输出,寻找最大不重复字串长度。

ZigZag Conversion   The string "PAYPALISHIRING" is written in a zigzag pattern on a given number o...

最长回文子序列+最长公共子序列+最长连续回文子串

LeetCode 最长回文子序列 动态规划

leetcode 刷题记录 截止到328题

  • 2016年07月24日 20:55
  • 309KB
  • 下载

leetcode 97. Interleaving String(字符串交错出现) DFS深度优先遍历+DP

Given s1, s2, s3, find whether s3 is formed by the interleaving of s1 and s2.For example, Given: s...

[LeetCode] Isomorphic Strings - 字符串操作:数组计数字符个数问题

题目概述: Given two strings s and t, determine if they are isomorphic. Two strings are isomorphic if the...

leetCode 8. String to Integer (atoi) (字符串转整形) 解题思路和方法

问题: String to Integer (atoi)  Implement atoi to convert a string to an integer. Hint: Carefully...

[LeetCode]—Valid Number 判断字符串是否为合法数据(科学计数法)

Valid Number Validate if a given string is numeric. Some examples: "0" => true " 0.1 " => ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:leetcode记录-字符串系列
举报原因:
原因补充:

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