Fancy Signal Translate 疑问
int main(){ string s; cin>>s; for(int i=1;;i++){ set<string>book; /*存储长度为i的字符串,不重复*/ for(int j=0;j+i<=s.size();j++){ book.insert(s.substr(j,i)); /*从 j 开始 长度为i的子串*/ } if(book.size()<(1<<i)){ /*长度为i的字符串总共有2^i种,若数量没有达到则为答案*/ cout<<i<<endl; break; } } return 0; }
这个set换成map的形式,为什么就不对了
int main() { string s; cin>>s; for (int i = 1; ; i++) { map<string,ll> mp; for (int j = 0; j < s.size(); j++) { string sub = s.substr(j, i); mp[sub]++; } if (mp.size() < (1<<i)) { cout<<i<<endl; break; } } return 0; }