UvaLive6439(string使用、回文串)

样例手写一写很容易发现规律(前后一样的串,则ans+=2),实现起来却忘了string的便捷性,其实根本用不到哈希。

 1 const int maxn = 1e5 + 5;
 2 int n, ans;
 3 string s, t1, t2;
 4 
 5 int main() {
 6     ios_base::sync_with_stdio(0);
 7     cin.tie(0);
 8     cin >> n;
 9     for (int kase = 1; kase <= n; kase++) {
10         cin >> s;
11         ans = 0;
12         t1 = t2 = "";
13         int i = 0, j = s.length() - 1;
14         while (i < j) {
15             t1 = t1 + s[i];
16             t2 = s[j] + t2;
17             if (t1 == t2) {
18                 ans += 2;
19                 t1 = t2 = "";
20             }
21             ++i, --j;
22         }
23         if (t1 != t2 || (t1 == t2 && i == j))    ans++;
24         cout << "Case #" << kase << ": " << ans << endl;
25     }
26     return 0;
27 }
原文地址:https://www.cnblogs.com/AlphaWA/p/10585814.html