题目描述:

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

输入:

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

输出:

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

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

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

 #include <iostream>
using namespace std; int main() {
string s;
while (cin >> s) {
int *a = new int[s.length()];
int max = ;
bool flag;
a[] = ;
for (int i = ; i < s.length(); ++i) {
flag = true;
for (int j = ; j <= a[i - ]; ++j) {
if (s[i - j] == s[i]) {
a[i] = j;
flag = false;
break;
}
}
a[i] = flag ? a[i - ] + : a[i];
max = max > a[i] ? max : a[i];
}
cout << max << endl;
}
return ;
}

滑动窗口!

 #include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std; string s;
vector<int> pos; void solve() {
int start = , len = ;
pos.assign(, -);
for (int i = ; i < s.length(); ++i) {
if (pos[s[i]] >= start) {
start = pos[s[i]] + ;
} else {
len = max(len, i - start + );
}
pos[s[i]] = i;
}
cout << len << endl;
} int main() {
while (cin >> s) {
solve();
}
return ;
}
/**************************************************************
Problem: 1530
User: hupo250
Language: C++
Result: Accepted
Time:50 ms
Memory:1520 kb
****************************************************************/

[Jobdu] 题目1530:最长不重复子串的更多相关文章

  1. 九度oj 1530 最长不重复子串

    原题链接:http://ac.jobdu.com/problem.php?pid=1530 字符串简单题,看似O(n^2)的复杂度10000的数据量会tle,其实最长不重复子串不超过26个嘛... 如 ...

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

    题目描述: 最长不重复子串就是从一个字符串中找到一个连续子串,该子串中任何两个字符都不能相同,且该子串的长度是最大的. 输入: 输入包含多个测试用例,每组测试用例输入一行由小写英文字符a,b,c... ...

  3. [LeetCode] Longest Substring Without Repeating Characters 最长无重复子串

    Given a string, find the length of the longest substring without repeating characters. For example, ...

  4. LeetCode:Longest Substring Without Repeating Characters(最长不重复子串)

    题目链接 Given a string, find the length of the longest substring without repeating characters. For exam ...

  5. Longest Substring Without Repeating Characters 最长不重复子串

    只遍历一次字符串即可求出最长不重复子串的长度. int lengthOfLongestSubstring(string s) { vector<,-); //记录字符上一次出现的位置,ASCII ...

  6. hdu_2668 Daydream O(n)求最长不重复子串

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2668 Daydream Time Limit: 2000/1000 MS (Java/Others)  ...

  7. 基于python 3.5 所做的找出来一个字符串中最长不重复子串算法

    功能:找出来一个字符串中最长不重复子串 def find_longest_no_repeat_substr(one_str): #定义一个列表用于存储非重复字符子串 res_list=[] #获得字符 ...

  8. 最长无重复子串问题 leetcode 3

    一.代码及注释 class Solution { public: int lengthOfLongestSubstring(string s) { int n = s.size(); //字符串的长度 ...

  9. LeetCode03 最长无重复子串

    题目 给定一个字符串,找出不含有重复字符的最长子串的长度. 解答 刚开始以为只是一遍遍历后来的字符和前面一样便开始算新子串,给的案例都过了,但是卡在了"dvdf" 后来经过重重试验 ...

随机推荐

  1. 【网络文摘】Androidguy:当你的才华还无法撑起你的野心时,那么应该静下心来学习

    [序] 2013年12月初,接到51CTO的邀请写一篇关于挨踢人物传记的邀请.尽管写文章对我已不是什么新鲜事.数年来写的书和博客至少也在600万字以上.不过基本都是与技术有关的.写传记这还是头一次,也 ...

  2. 自定义UITableViewCell 的delete按钮

    自定义UITableViewCell上的delete按钮 滑动列表行(UITableViewCell)出现删除按钮时,默认是英文“delete”,这份代码片段能够将“delete”变成中文”删除“,甚 ...

  3. Mapreduce实例-Top Key

    1 public class TopK extends Configured implements Tool { public static class TopKMapper extends Mapp ...

  4. vue源码cached高阶函数解析

    1.源代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <tit ...

  5. curl命令(测试连接命令)

    curl命令是一个利用URL规则在命令行下工作的文件传输工具.它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具.作为一款强力工具,curl支持包括HTTP.HTTPS.f ...

  6. Memcached安装与配置

     memcached是danga.com的一个项目.它是一款开源的高性能的分布式内存对象缓存系统.最早是给LiveJournal提供服务的.后来逐渐被越来越多的大型站点所採用.用于在应用中减少对数据库 ...

  7. java stream collector

    Java Stream API进阶篇 本文github地址 上一节介绍了部分Stream常见接口方法,理解起来并不困难,但Stream的用法不止于此,本节我们将仍然以Stream为例,介绍流的规约操作 ...

  8. 细说HTML元素的隐藏和显示

    CSS文档对HTML的显示和隐藏有2个属性可供选择: 1.display 2.visiblity 这2个有什么区别呢? display: display版本:CSS1/CSS2 兼容性:IE4+ NS ...

  9. 【LeetCode】32. Longest Valid Parentheses (2 solutions)

    Longest Valid Parentheses Given a string containing just the characters '(' and ')', find the length ...

  10. bookstrap table插件

    牛逼的插件: http://www.html580.com/?oF9uwUtZ