题解-bfs | #密码锁#

密码锁

https://www.nowcoder.com/practice/7da5fb77ba2e462c909fbff8f61584be

#include <iostream>
#include <queue>
#include <unordered_map>
using namespace std;
int n;
int bfs(string st){
    queue<string> q;
    unordered_map<string, int> d;
    q.push(st);
    d[st] = 0;
    while(q.size()){
        auto t = q.front();
        q.pop();
        if(t.find("2012") != -1) return d[t];
        for(int i = 0; i < t.size() - 1; i ++){
            string r = t;
            swap(r[i], r[i + 1]);
            if(d.count(r) == 0){
                q.push(r);
                d[r] = d[t] + 1;
            }
        }
    }
    return -1;
}


int main(){
    while(cin>>n){
        string s;
        cin>>s;
        cout<<bfs(s)<<endl;
    }
    return 0;
}

全部评论
妙啊
点赞 回复 分享
发布于 02-13 19:48 山东

相关推荐

兄弟们,实习都是在接各种api,该怎么包装简历
仁者伍敌:感觉我自己做小项目也是各种api啊,我要怎么包装简历
点赞 评论 收藏
分享
这不纯纯作弊了吗😢😢😢
编程界菜鸡:信这个的这辈子有了,这智商你靠啥都没用
你找工作的时候用AI吗?
点赞 评论 收藏
分享
深夜书店vv:腾讯是这样的,去年很多走廊都加桌子当工区
点赞 评论 收藏
分享
06-20 19:40
中原工学院 Java
网络存储:十几天不会让你拉人办卡就结束了吧?
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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