题目:求一个字符串中最长的没有重复字符的子串。
#include <iostream> #include <string.h> using namespace std; void p(char *a,int n) { if(a==NULL||n<0) return; int i,j,maxlen=0,maxindex; char hash[256]; for(i=0;i<n;i++) { memset(hash,0,256); hash[a[i]]=1; for(j=i+1;j<n;j++) { if(hash[a[j]]==0) hash[a[j]]=1; else break; } if(j-i>maxlen) { maxlen=j-i; maxindex=i; } } int k=maxindex; while(maxlen) { cout<<a[k]; maxlen--; k++; } } int main() { char a[]="asafasff"; p(a,8); return 0; }