zoukankan      html  css  js  c++  java
  • hihocoder1766 字符串问题

    思路:

    不断贪心增加即可。

    实现:

     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 }
  • 相关阅读:
    集合
    第五天
    第四天
    第二天
    ieee 期刊缩写(转载)
    JAVA学习笔记03
    JAVA学习笔记2
    JAVA学习笔记01
    Latex 图片排版
    非奇异终端滑模
  • 原文地址:https://www.cnblogs.com/wangyiming/p/9862147.html
Copyright © 2011-2022 走看看