fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. string longest(string& s) {
  5. int best=0;
  6. int bestL;
  7. for(int i=0;i<s.size();i++) {
  8. for(int j=0;j<2;j++) {
  9. int l = i, r = i+j;
  10. if(r >= s.size() || s[l] != s[r]) continue;
  11. while(l-1 >= 0 && r+1 < s.size() && s[l-1] == s[r+1]) l--,r++;
  12. if(r-l+1 > best) {
  13. best = r-l+1;
  14. bestL = l;
  15. }
  16. }
  17. }
  18. return s.substr(bestL, best);
  19. }
  20.  
  21. string longest(vector<string>& str) {
  22. string best;
  23. for(auto& s : str) {
  24. auto ss = longest(s);
  25. if(ss.size() > best.size()) best = ss;
  26. }
  27. return best;
  28. }
  29.  
  30. int main() {
  31. vector<string> v = {"carracecar", "aabbaa", "aabbbabab"};
  32. cout<<longest(v)<<endl;
  33. }
  34.  
Success #stdin #stdout 0s 15240KB
stdin
Standard input is empty
stdout
racecar