首页 > 其他 > 详细

hihocoder1766 字符串问题

时间:2018-10-27 16:29:47      阅读:94      评论:0      收藏:0      [点我收藏+]

思路:

不断贪心增加即可。

实现:

 1 #include <iostream>
 2 #include <cstring>
 3 using namespace std;
 4 int ne[100005][26];
 5 int main()
 6 {
 7     string s;
 8     while (cin >> s)
 9     {
10         memset(ne, 0, sizeof ne);
11         int n = s.length();
12         for (int i = 0; i < 26; i++) ne[n][i] = n;
13         for (int i = n - 1; i >= 0; i--)
14         {
15             for (int j = 0; j < 26; j++)
16                 ne[i][j] = ne[i + 1][j];
17             ne[i][s[i] - a] = i;
18         }
19         int ans = 1;
20         for (int i = 1; i < n; i++)
21         {
22             int j = i, cur = 0;
23             while (j < n)
24             {
25                 if (ne[cur][s[j] - a] < i)
26                 {
27                     cur = ne[cur][s[j] - a];
28                     cur++;
29                     j++;
30                 }
31                 else break;
32             }
33             ans++;
34             i = max(i, j - 1);
35         }
36         cout << ans << endl;
37     }
38     return 0;
39 }

 

hihocoder1766 字符串问题

原文:https://www.cnblogs.com/wangyiming/p/9862147.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!