Leetcode 336 回文对
2016-09-13 17:58
211 查看
本文借鉴了https://discuss.leetcode.com/topic/51771/clean-c-implementation
例如:
words = [“bat”, “tab”, “cat”]
返回 [[0,1], [1,0]]
回文串即[“battab”, “tabbat”]
单纯记录一下,方便以后复习。
原题回放
给定一个无重复字符串列表words,找出所有的序偶对(i,j),如果words[i]+words[j]是一个回文串的话。例如:
words = [“bat”, “tab”, “cat”]
返回 [[0,1], [1,0]]
回文串即[“battab”, “tabbat”]
代码
class Solution{ public: bool isPalindrome(string& s, int start, int end){ while(start < end) if(s[start++] != s[end--]) return false; } vector<vector<int>> palindromePairs(vector<string> words){ vector<vector<int>> ans; unordered_map<string, int> dict; int len = words.size(); for(int i=0; i<len; i++) dict[words[i]] = i; for(int i=0; i<len; i++){ string cur = words[i]; int clen = cur.size(); for(int j=0; j<=clen; j++){ // 找后缀 if(isPalindrome(cur, j, clen-1)){ // 后缀可以为空 string suffix = cur.substr(0, j); reverse(suffix.begin(), suffix.end()); if(dict.find(suffix)!=dict.end() && i!=dict[suffix]) ans.push_back({i, dict[suffix]}); } // 找前缀 if(j>0 && isPalindrome(cur, 0, j-1)){ string prefix = cur.substr(j); reverse(prefix.begin(), prefix.end()); if(dict.find[prefix]!=dict.end() && i!=dict[prefix]) ans.push_back({dict[prefix], i}); } } } return ans; } };
单纯记录一下,方便以后复习。
相关文章推荐
- [LeetCode] Palindrome Number 验证回文数字
- 分割成回文需要的最小分割数 Palindrome Partitioning II @LeetCode
- 【Leetcode】234. Palindrome Linked List -判断链表是否为回文序列
- [Leetcode] 回文问题
- leetcode题目 寻找最长回文字串
- 【回文】leetcode - Shortest Palindrome
- 【LeetCode-面试算法经典-Java实现】【05-Longest Palindromic Substring(最大回文字符串)】
- leetcode之O(1)空间复杂度判断一个整数是否是回文整数
- leetcode刷题总结之“整形回文”
- LeetCode 5 最长回文子串 Manacher算法
- leetcode 214. Shortest Palindrome 最短回文数 + KMP算法
- LeetCode 234 Palindrome Linked List(回文链表)(*)(?)
- 【 Javascript刷LeetCode系列】5. Longest Palindromic Substring 最长回文子串问题
- [LeetCode系列] 最长回文子串问题
- 2014再见 2015你好 【附带】[LeetCode]最长回文子串
- LeetCode 5 Longest Palindromic Substring(最长回文子串,暴力剪枝/DP/曼彻斯特算法)
- [LeetCode]-Palindrome Number 判断整数回文
- [编程题] LeetCode上的Palindrome(回文)类型的题目
- LeetCode:Palindrome Number(回文判断)
- LeetCode 409. Longest Palindrome(最长回文)