首页 > 代码库 > poj 1226 string

poj 1226 string

  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <string>
  4. #include <algorithm>
  5. #include <iostream>
  6. using namespace std;
  7. int cmp(const string p,const string q)
  8. {
  9. return p.length()<q.length();
  10. }
  11. int main()
  12. {
  13. freopen("read.txt", "r", stdin);
  14. string str[200];
  15. int T;
  16. scanf("%d", &T);
  17. while(T--)
  18. {
  19. int n;
  20. scanf("%d", &n);
  21. string tp;
  22. for(int i=0; i<n; i++)
  23. cin >> str[i];
  24. sort(str, str+n, cmp);
  25. int length = str[0].length();
  26. int result = 0;
  27. for(int i=0; i<length; i++)
  28. {
  29. bool sign = 1;
  30. tp.clear();
  31. for(int j=i+1; j<=length && sign; j++)
  32. {
  33. tp.assign(str[0], i, j-i);
  34. for(int k =0; k<n; k++)
  35. {
  36. if(str[k].find(tp) == str[k].npos)
  37. {
  38. reverse(str[k].begin(), str[k].end() );
  39. if(str[k].find(tp) == str[k].npos)
  40. {sign = 0; break;}
  41. }
  42. }
  43. if(sign)
  44. {
  45. if(result < j-i) result = j-i;
  46. }
  47. }
  48. }
  49. printf("%d\n", result);
  50. }
  51. return 0;
  52. }




来自为知笔记(Wiz)


附件列表

     

    poj 1226 string