题目描述
给定一个字符串,找出不含有重复字符的 最长子串 的长度。(注意:必须是一个子串,不是子序列)
输入
一个字符串
输出
最长子串 的长度
示例:
给定 "abcabcbb" ,没有重复字符的最长子串是 "abc" ,那么长度就是3
给定 "bbbbb" ,最长的子串就是 "b" ,长度是1
给定 "pwwkew" ,最长子串是 "wke" ,长度是3。请注意答案必须是一个子串,"pwke" 是 子序列 而不是子串
样例输入
abcabcbb
样例输出
3
Code:
#include<bits/stdc++.h>
using namespace std;
bool isName(string name,string typed){
if(name.size()>typed.size()){
return false;
}
if(name==typed){
return true;
}
int i=0,j=0;
while(i<name.size()&&j<typed.size()){
if(name[i]==typed[j]){
i++,j++;
}else{
if(typed[j]==typed[j-1]){
j++;
}else{
return false;
}
}
}
if(i<name.size()){
return false;
}
while(j<typed.size()){
if(typed[j]==typed[j-1]){
j++;
}else{
return false;
}
}
return true;
}
int main(){
string s1,s2;
cin>>s1>>s2;
if(isName(s1,s2)){
cout<<"true";
}else{
cout<<"false";
}
return 0;
}
/**************************************************************
Problem: 2820
User: yangrenrui
Language: C++
Result: 正确
Time:32 ms
Memory:2712 kb
****************************************************************/