华为考题5-最长回文子串

tech2022-12-05  114

1、暴力解法

class Solution { public: string longestPalindrome(string s) { int n = s.size(); if(n < 2)return s; int begin = 0; int maxlen = 1; string ans; for(int i = 0; i < n-1; i++) { for(int j = i+1; j < n; j++) { if((j-i+1>maxlen) && isvalid(s,i,j)) { maxlen = j - i + 1; begin = i; } } } ans = s.substr(begin,maxlen); if(ans.size() == 0) { ans = s.substr(0,1); } return ans; } bool isvalid(string s,int begin,int end) { while(begin < end) { if(s[begin] != s[end]) { return false; }else{ begin++; end--; } } return true; } };

 

最新回复(0)