玛雅人的密码

玛雅人的密码

http://www.nowcoder.com/questionTerminal/761fc1e2f03742c2aa929c19ba96dbb0

没有任何优化的无脑暴力bfs

#include<iostream>
#include<queue>
#include<string>
using namespace std;
struct mitery{
    int index;
    string s;
    mitery(int i,string ss):index(i),s(ss){}
};
void bfs(string s){
    queue<mitery> q;
    q.push(mitery(0,s));
    while(!q.empty()){
        mitery t=q.front();
        q.pop();
        string ts=t.s;
        if(ts.find("2012")!=string::npos){
            cout<<t.index<<endl;return ;
        }
        for(int i=0;i<ts.size()-1;i++){
            swap(ts[i],ts[i+1]);
            q.push(mitery(t.index+1,ts));
            swap(ts[i],ts[i+1]);
        }
    }
    cout<<-1<<endl;
} 
int main(){
    int n;
    string s;
    while(cin>>n>>s){
        bfs(s);
    }
    return 0;
}
全部评论
没有2012,就吃了炫迈
4 回复 分享
发布于 2022-03-18 11:08
为什么bfs循环没有终止条件不会一直运行下去?
3 回复 分享
发布于 2022-03-03 10:55
没有2012,直接g
1 回复 分享
发布于 2022-04-25 14:56
为什么要swap两次阿?
1 回复 分享
发布于 2022-03-26 17:40

相关推荐

不愿透露姓名的神秘牛友
07-11 11:25
点赞 评论 收藏
分享
06-28 22:48
已编辑
广东金融学院 Java
小浪_Coding:学院本+这俩项目不是buff叠满了嘛
点赞 评论 收藏
分享
炫哥_:哥们项目描述里面vector和mysql之类的都要写吗,直接开头技术栈巴拉巴拉就行了,完全不是技术点啊
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-09 12:23
转人工😡
门口唉提是地铁杀:五次握手了
点赞 评论 收藏
分享
评论
19
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务