题解 | #玛雅人的密码#

#include <iostream>

#include <queue>

#include <string>

using namespace std;

typedef pair<int, string> PII;

void DFS(string str){

    queue<PII> q;

    q.push({0, str});

    while(!q.empty()){

        auto t = q.front();

        q.pop();

        if (t.second.find("2012") != string::npos) {

            cout << t.first << endl;

            return;

        }

        for(int i = 0; i < t.second.length() - 1; i ++){

            swap(t.second[i], t.second[i+1]);

            q.push({t.first + 1, t.second});

            swap(t.second[i], t.second[i+1]);//恢复交换前的字符串,对后续字符进行交换

        }

    }

    cout << -1 << endl;

}

int main() {

    int n;

    string str;

    while(cin >> n >> str){

        DFS(str);

    }

    return 0;

}

全部评论

相关推荐

湫湫湫不会java:1.在校经历全删了2.。这些荣誉其实也没啥用只能说,要的是好的开发者不是好好学生3.项目五六点就行了,一个亮点一俩行,xxx技术解决,xxx问题带来xxx提升。第一页学历不行,然后啥有价值的信息也没有,到第二页看到项目了,第一个项目九点,第二个项目像凑数的俩点。总体给人又臭又长,一起加油吧兄弟
点赞 评论 收藏
分享
牛客83700679...:简历抄别人的,然后再投,有反馈就是简历不行,没反馈就是学历不行,多投多改只要技术不差机会总会有的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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