随笔分类 -  算法-字符串

摘要:题目:给定一系列的字符串,找出这些字符串的最长公共前缀。解法:暴力法,依次比较每个字符串的每个字符,碰到第一个不同的就返回之前找到的前缀。代码: 1 class Solution { 2 public: 3 string longestCommonPrefix(vector &strs) {... 阅读全文
posted @ 2014-06-03 16:33 阿杰的专栏 阅读(102) 评论(0) 推荐(0) 编辑
摘要:题目:正则表达式的匹配,'.'能匹配任何一个字符,'*'之前必须有一个字符,两个结合起来表示之前那个字符出现0到无穷次。解法:一定要注意'*'必须结合前面的字符一起使用。代码: 1 class Solution { 2 public: 3 bool isMatch(const char *s... 阅读全文
posted @ 2014-06-02 23:16 阿杰的专栏 阅读(309) 评论(0) 推荐(0) 编辑
摘要:题目:字符串转换为数字。解法:这道题的意思是要考虑到,如果有前置的空字符,则跳过;如果超出数字范围,则返回最大/最小整数;如果碰到第一个不能转换的字符,则返回。代码: 1 class Solution { 2 public: 3 int atoi(const char *str) { 4 ... 阅读全文
posted @ 2014-06-02 22:06 阿杰的专栏 阅读(289) 评论(0) 推荐(0) 编辑
摘要:题目:把一个字符串按照Z型排列后打印出来,例如"PAYPALISHIRING" 重新排列后为3行,即P A H NA P L S I I GY I R那么输出为"PAHNAPLSIIGYIR"解法:细节实现题,假如重新排列为5行,那么排列后的下标分布应该为0 8 ... 阅读全文
posted @ 2014-06-02 15:17 阿杰的专栏 阅读(130) 评论(0) 推荐(0) 编辑
摘要:题目:给定一个字符串S,返回S中最长的回文子串。S最长为1000,且最长回文子串是唯一。解法:①遍历,对于每个字符,计算以它为中心的回文子串长度(长度为奇数),同时计算以它和右边相邻字符为中心的回文子串长度(长度为偶数)。时间为O(N2)。②另外,有一个很奇妙的算法,称为Manacher算法,参考h... 阅读全文
posted @ 2014-06-02 11:39 阿杰的专栏 阅读(436) 评论(0) 推荐(0) 编辑
摘要:题目:给定一个字符串,返回其中不包含重复字符的最长子串长度。解法:维持两个指针,第一个指向子串开始,第二个负责遍历,当遍历到的字符出现在子串内时,应计算当前子串长度,并更新最长值;然后第一个指针更新为出现位置的下一个。代码: 1 class Solution { 2 public: 3 in... 阅读全文
posted @ 2014-06-01 16:48 阿杰的专栏 阅读(134) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示