题目:求字符串的最长非重复子序列。比如字符串“dabaccdeff”,它的最长非重复子序列为“dabcef”
这道题目与 非常相似。都可以通过对字符串球哈希来解。
View Code
#include#include #include using namespace std;void print(char *s,int len,char *hashtable);int NoReplicatedSubstring(char *s,int len){ const int tablesize=256; char *hashtable=new char[tablesize]; int i; int j; int count=0; //初始化hash[] for(i=0;i c;//创建一个栈 for(i=len-1;i>=0;i--) { if(hashtable[s[i]]!='\0') { c.push(hashtable[s[i]]); count++; hashtable[s[i]]='\0'; } } //输出栈中的内容 while(!c.empty()) { cout<