码迷,mamicode.com
首页 > 其他好文 > 详细

hihocoder1766 字符串问题

时间:2018-10-27 16:39:34      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:set   eof   bre   max   ret   字符串问题   while   问题   for   

思路:

不断贪心增加即可。

实现:

 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 字符串问题

标签:set   eof   bre   max   ret   字符串问题   while   问题   for   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!