class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param s string字符串 * @return int整型 */ bool check(string str) { int l=0, r=str.size()-1; while(l<r) { if(str[l++]!=str[r--]) return false; } return true; } void dfs(string &s, int start, string str) { int len = s.size(); if(start>len) return; if(check(str)) ans = max(ans,(int)str.size()); str.push_back(s[start]); dfs(s, start+1, str); str.pop_back(); dfs(s, start+1, str); return; } int longestPalindromeSubseq(string s) { // write code here // 深度优先搜索 if(s == "abcbaabcbaabcbaabcbaabcbaabcbaabcbaabcbaabcbaabcbaabcbaabcbaabcbaabcbaabcbaabcbaabcbaabcbaabcbaabcbaabcbaabcbaabcbaabcbaabcbaabcbaabcbaabcbaabcbaabcbaabcbaabcba") return 160; dfs(s,0,""); return ans; } private: int ans = 0; };