字符串中最大子串问题
来源:互联网 发布:上海电力设计院 知乎 编辑:程序博客网 时间:2024/05/16 18:03
输入一个字符串,输出其最大子串长度,即子串中任两个字符不相同 。本程序只能输入字母,空格以及逗号,并且不区分大小写,输出为第一个具有最大长度的子串以及其长度。
#include<iostream>
#include<string>
using namespace std;
int chartoi(char c)
...{
if(isalnum(c))
...{
if(isalpha(c))
return tolower(c)-'a';
else
return c-'0'+26;
}
else
if(isspace(c))
return 36;
else if(c==',')
return 37;
else
...{
cout<<"error input char"<<endl;
exit(0);
}
}
int substr(char* str, int len)
...{
int A[38]=...{0};
int i,j;
int maxlen=0,templen;
int beg=0,end=0;
for(i=0,j=0;i<len,j<len; ++j)
...{
int num=chartoi(str[j]);
if(A[num]==0)
A[num]=1;
else
...{
A[num]+=1;
int step;
for(step=i;step<=j;++step)//
...{
int num1=chartoi(str[step]);
if(A[num1]>1)
...{
--A[num1];
break;
}
}
i=step+1;
}
templen=j-i+1;
if(templen>maxlen)
...{
beg=i;
end=j;
maxlen=templen;
}
}
for(i=beg;i<=end;++i)
cout<<str[i];
cout<<endl;
return maxlen;
}
int main()
...{
char str[]="good morning, everyone";
cout<<str<<endl;
cout<<substr(str,strlen(str))<<endl;
return 0;
}
#include<string>
using namespace std;
int chartoi(char c)
...{
if(isalnum(c))
...{
if(isalpha(c))
return tolower(c)-'a';
else
return c-'0'+26;
}
else
if(isspace(c))
return 36;
else if(c==',')
return 37;
else
...{
cout<<"error input char"<<endl;
exit(0);
}
}
int substr(char* str, int len)
...{
int A[38]=...{0};
int i,j;
int maxlen=0,templen;
int beg=0,end=0;
for(i=0,j=0;i<len,j<len; ++j)
...{
int num=chartoi(str[j]);
if(A[num]==0)
A[num]=1;
else
...{
A[num]+=1;
int step;
for(step=i;step<=j;++step)//
...{
int num1=chartoi(str[step]);
if(A[num1]>1)
...{
--A[num1];
break;
}
}
i=step+1;
}
templen=j-i+1;
if(templen>maxlen)
...{
beg=i;
end=j;
maxlen=templen;
}
}
for(i=beg;i<=end;++i)
cout<<str[i];
cout<<endl;
return maxlen;
}
int main()
...{
char str[]="good morning, everyone";
cout<<str<<endl;
cout<<substr(str,strlen(str))<<endl;
return 0;
}
- 字符串中最大子串问题
- 两个字符串中最大相同子串
- 最大的子字符串问题
- 字符串最大子串
- 动态规划 字符串最大公共子序列以及最大公共子串问题LCS
- 最大子串问题
- 最大子串问题
- 在一个字符串中找一个最大重复子串
- JAV打印字符串中最大的回文子串
- 字符串中对称子串的最大长度
- 在一个字符串中找一个最大重复子串
- 获取两个字符串中最大相同子串
- 获取两个字符串中最大相同子串
- 两个字符串中最大相同的子串
- 字符串中对称子串的最大长度
- C++实现在一个字符串中寻找最大子串
- 获取两个字符串中最大的相同子串
- java 在一个字符串中查找最大对称子串
- 为Spring远程服务增加自动发现和群集功能
- Spring轮子血案的插曲
- 吃透理财三句话人人都能成百万富翁
- 准备清华面试
- CSS中的属性缩写
- 字符串中最大子串问题
- Porting QT/E & QPE to VT8420
- 通过ADO.NET存取文件
- 在ASP.NET中实现鼠标移动悬停在DataGrid时高亮显示这一行的方法
- WinCE应用程序开发常见问题解答(三)(转载)
- Windows Mobile 开发常见问题集(四) (转载)
- Windows Mobile 开发常见问题集(二)(转载)
- Pocket PC以及Smartphone开发者或对此感兴趣者提出的常见问题提供了解答(转载)
- 软件分类