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;
}

全部评论

相关推荐

点赞 评论 收藏
分享
秋国🐮🐴:拿到你简历编号然后让你知道世间险恶
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务