九度题目1530:最长不重复子串

题目1530:最长不重复子串
时间限制:1 秒
内存限制:128 兆
特殊判题:否
提交:873
解决:284
题目描述:
最长不重复子串就是从一个字符串中找到一个连续子串,该子串中任何两个字符都不能相同,且该子串的长度是最大的。

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

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

样例输入:
absd
abba
abdffd

样例输出:
4
2
4

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

 

 

AC代码:

#include<stdio.h>
#include<string.h>
char a[11000];
int b[11000];
int flag[28];
int main()
{
    int i,j,n,m,sum,max;
    while(scanf("%s",a)!=EOF)
    {
       n=strlen(a);m=0;
       for(i=0;i<n;i++)
       {
          b[m++]=a[i]-'a';
       }
       sum=0;max=-9999999;
       for(i=0;i<m;i++)//没有回溯就WA了
       {
          memset(flag,0,sizeof(flag));
          sum=0;
          for(j=i;j<m;j++)
          {
             if(!flag[b[j]])
             {
                 flag[b[j]]=1;
                 sum++;
                 if(sum>max)
                 max=sum;
             }
             else break;
          }
       }
       printf("%d\n",max);
       memset(a,0,sizeof(a));
    }
    return 0;
}
时间: 2024-10-01 17:03:39

九度题目1530:最长不重复子串的相关文章

最长不重复子串

题目1530:最长不重复子串 时间限制:1 秒内存限制:128 兆特殊判题:否提交:816 解决:263 题目描述: 最长不重复子串就是从一个字符串中找到一个连续子串,该 子串中任何两个字符都不能相同,且该子串的长度是最大的 . 输入: 输入包含多个测试用例,每组测试用例输入一行由小写英文 字符a,b,c...x,y,z组成的字符串,字符串的长度不大于 10000. 输出: 对于每组测试用例,输出最大长度的不重复子串长度. 样例输入: absd abba abdffd 样例输出: 4 2 4 来

最长公共子序列|最长公共子串|最长重复子串|最长不重复子串|最长回文子串|最长递增子序列|最大子数组和

参考:http://www.ahathinking.com/archives/124.html 最长公共子序列 1.动态规划解决过程 1)描述一个最长公共子序列 如果序列比较短,可以采用蛮力法枚举出X的所有子序列,然后检查是否是Y的子序列,并记录所发现的最长子序列.如果序列比较长,这种方法需要指数级时间,不切实际. LCS的最优子结构定理:设X={x1,x2,--,xm}和Y={y1,y2,--,yn}为两个序列,并设Z={z1.z2.--,zk}为X和Y的任意一个LCS,则:       (1

找出所有最长连续重复子串及其个数

问题描述: 找出字符串中所以最长连续重复子串及其个数 比如: 输入:123234,最大连续重复字符串为23,个数为2 输入:5555,最大连续重复字符串为555,个数为2 输入:aaabbb 最大连续重复字符串为aa,个数为2:和bb,个数为2 必须存在重复的字符串才算,只出现一次的不算.可能存在多个相同长度的不同字符串,比如aaabbb. 解题思路 与[求一个字符串中连续出现次数最多的子串]的区别体现在两个方面:一是要找最长子串(重复次数大于等于2即可):二是要考虑子串是有重叠的重复,如eee

九度题目1528:最长回文子串

题目1528:最长回文子串 时间限制:1 秒 内存限制:128 兆 特殊判题:否 提交:781 解决:239 题目描述: 回文串就是一个正读和反读都一样的字符串,比如"level"或者"noon"等等就是回文串. 回文子串,顾名思义,即字符串中满足回文性质的子串. 给出一个只由小写英文字符a,b,c...x,y,z组成的字符串,请输出其中最长的回文子串的长度. 输入: 输入包含多个测试用例,每组测试用例输入一行由小写英文字符a,b,c...x,y,z组成的字符串,字

九度题目1342:寻找最长合法括号序列II

题目1342:寻找最长合法括号序列II(25分) 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:732 解决:294 题目描述: 假如给你一个由'('和')'组成的一个随机的括号序列,当然,这个括号序列肯定不能保证是左右括号匹配的,所以给你的任务便是去掉其中的一些括号,使得剩下的括号序列能够左右括号匹配且长度最长,即最长的合法括号序列. 输入: 测试数据包括多个,每个测试数据只有一行,即一个随机的括号序列,该括号序列的长度保证不超过106. 输出: 对于每个测试案例,输出一个整数,表

九度题目1009:二叉搜索树

题目1009:二叉搜索树 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:4308 解决:1919 题目描述: 判断两序列是否为同一二叉搜索树序列 输入: 开始一个数n,(1<=n<=20) 表示有n个需要判断,n= 0 的时候输入结束. 接下去一行是一个序列,序列长度小于10,包含(0~9)的数字,没有重复数字,根据这个序列可以构造出一颗二叉搜索树. 接下去的n行有n个序列,每个序列格式跟第一个序列一样,请判断这两个序列是否能组成同一颗二叉搜索树. 输出: 如果序列相同则输出YES

九度题目1201:二叉排序树

题目1201:二叉排序树 时间限制:1 秒内存限制:32 兆特殊判题:否提交:3008解决:1262 题目描述:     输入一系列整数,建立二叉排序数,并进行前序,中序,后序遍历. 输入:     输入第一行包括一个整数n(1=n=100).     接下来的一行包括n个整数. 输出:     可能有多组测试数据,对于每组数据,将题目所给数据建立一个二叉排序树,并对二叉排序树进行前序.中序和后序遍历.     每种遍历结果输出一行.每行最后一个数据之后有一个空格. 样例输入: 5 1 6 5

九度题目1120:全排列

题目1120:全排列  时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:2749 解决:669 题目描述: 给定一个由不同的小写字母组成的字符串,输出这个字符串的所有全排列. 我们假设对于小写字母有'a' < 'b' < ... < 'y' < 'z',而且给定的字符串中的字母已经按照从小到大的顺序排列. 输入: 输入只有一行,是一个由不同的小写字母组成的字符串,已知字符串的长度在1到6之间. 输出: 输出这个字符串的所有排列方式,每行一个排列.要求字母序比较小的排列在前

九度题目1109:连通图

题目1109:连通图 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:1967 解决:979 题目描述:     给定一个无向图和其中的所有边,判断这个图是否所有顶点都是连通的. 输入:     每组数据的第一行是两个整数 n 和 m(0<=n<=1000).n 表示图的顶点数目,m 表示图中边的数目.如果 n 为 0 表示输入结束.随后有 m 行数据,每行有两个值 x 和 y(0<x, y <=n),表示顶点 x 和 y 相连,顶点的编号从 1 开始计算.输入不保证这些