zoukankan      html  css  js  c++  java
  • [Jobdu] 题目1530:最长不重复子串

    题目描述:

    最长不重复子串就是从一个字符串中找到一个连续子串,该子串中任何两个字符都不能相同,且该子串的长度是最大的。

    输入:

    输入包含多个测试用例,每组测试用例输入一行由小写英文字符a,b,c...x,y,z组成的字符串,字符串的长度不大于10000。

    输出:

    对于每组测试用例,输出最大长度的不重复子串长度。

    样例输入:
    absd
    abba
    abdffd
    样例输出:
    4
    2
    4

    阿尔卡特2013年实习生招聘笔试题

     1 #include <iostream>
     2 using namespace std;
     3 
     4 int main() {
     5     string s;
     6     while (cin >> s) {
     7         int *a = new int[s.length()];
     8         int max = 1;
     9         bool flag;
    10         a[0] = 1;
    11         for (int i = 1; i < s.length(); ++i) {
    12             flag = true;
    13             for (int j = 1; j <= a[i - 1]; ++j) {
    14                 if (s[i - j] == s[i]) {
    15                     a[i] = j;
    16                     flag = false;
    17                     break;
    18                 }
    19             }
    20             a[i] = flag ? a[i - 1] + 1 : a[i];
    21             max = max > a[i] ? max : a[i];
    22         }
    23         cout << max << endl;
    24     }
    25     return 0;
    26 }

     滑动窗口!

     1 #include <iostream>
     2 #include <string>
     3 #include <vector>
     4 #include <algorithm>
     5 using namespace std;
     6  
     7 string s;
     8 vector<int> pos;
     9  
    10 void solve() {
    11     int start = 0, len = 0;
    12     pos.assign(256, -1);
    13     for (int i = 0; i < s.length(); ++i) {
    14         if (pos[s[i]] >= start) {
    15             start = pos[s[i]] + 1;
    16         } else {
    17             len = max(len, i - start + 1);
    18         }
    19         pos[s[i]] = i;
    20     }
    21     cout << len << endl;
    22 }
    23  
    24 int main() {
    25     while (cin >> s) {
    26         solve();
    27     }
    28     return 0;
    29 }
    30 /**************************************************************
    31     Problem: 1530
    32     User: hupo250
    33     Language: C++
    34     Result: Accepted
    35     Time:50 ms
    36     Memory:1520 kb
    37 ****************************************************************/
  • 相关阅读:
    Android AHandle AMessage
    android java 与C 通过 JNI双向通信
    android 系统给应用的jar
    UE4 unreliable 同步问题
    UE4 difference between servertravel and openlevel(多人游戏的关卡切换)
    UE4 Run On owing Client解析(RPC测试)
    UE4 TSubclassOf VS Native Pointer
    UE4 内容示例网络同步Learn
    UE4 多人FPS VR游戏制作笔记
    UE4 分层材质 Layerd Materials
  • 原文地址:https://www.cnblogs.com/easonliu/p/3639171.html
Copyright © 2011-2022 走看看