leetcode 214. Shortest Palindrome
来源:互联网 发布:软件安全性控制 编辑:程序博客网 时间:2024/05/20 09:45
题目:
Given a string S, you are allowed to convert it to a palindrome by adding characters in front of it. Find and return the shortest palindrome you can find by performing this transformation.
For example:
Given "aacecaaa"
, return "aaacecaaa"
.
Given "abcd"
, return "dcbabcd"
.
翻转后找相等的最大前后缀,没优化,应该可以不用翻转,直接比较。
class Solution {public: string shortestPalindrome(string s) { string t = s; reverse(t.begin(),t.end()); if(t == s) return t; int i = t.size()-1; for( ;i >=0;i--){ if(t.substr(t.size()-1-i,i)==s.substr(0,i)) { break; } } return t.substr(0,t.size()-1-i) + s; }};最优:
class Solution {public: string shortestPalindrome(string s) { int n = s.length(); int i = 0, j = n - 1; while (j >= 0) { if (s[i] == s[j]) ++i; --j; } if (i == n) return s; string suffix = s.substr(i); return string(suffix.rbegin(), suffix.rend()) + shortestPalindrome(s.substr(0, i)) + suffix; }
阅读全文
0 0
- [leetcode] 214.Shortest Palindrome
- LeetCode 214. Shortest Palindrome
- leetcode 214. Shortest Palindrome
- LeetCode 214. Shortest Palindrome
- LeetCode 214. Shortest Palindrome
- leetcode.214. Shortest Palindrome
- leetcode-214. Shortest Palindrome
- 【LeetCode】214. Shortest Palindrome
- [LeetCode]214. Shortest Palindrome
- Leetcode 214. Shortest Palindrome
- LeetCode 214. Shortest Palindrome
- LeetCode 214. Shortest Palindrome
- leetcode 214. Shortest Palindrome
- leetcode 214. Shortest Palindrome
- [Leetcode]214. Shortest Palindrome@python
- (Java)LeetCode-214. Shortest Palindrome
- LeetCode hard 214. Shortest Palindrome
- [leetcode] 214. Shortest Palindrome 解题报告
- Mybatis第一课
- 趣味题:杀人范围 codeforces B. Wrath
- Java面试题全集(上)
- MySQL insert into select锁表的问题(上)
- http协议响应码
- leetcode 214. Shortest Palindrome
- 赋值
- SSM整合(2): spring 与 mybatis 整合
- 【Python爬虫】东方财富数据爬取
- composer方式安装thinkphp5
- Java IO流
- java中判断是否相等
- LeetCode 646. Maximum Length of Pair Chain
- mysql设定或修改密码的三个方法