zoukankan      html  css  js  c++  java
  • I. Same String

    有两个只由小写字母组成的长度为n的字符串s1,s2m组字母对应关系,每一组关系由两个字母c1c2组成,代表c1可以直接变成c2,你需要判断s1是否可以通过这m组关系转换为s2

    输入格式

    第一行输入一个n(1n100),代表字符串的长度。
    第二行和第三行输入两个字符串s1,s2
    第四行输入一个m(1m325),代表有m组关系。
    接下来m行,第i行两个字符ui,vi,代表ui可以直接变为vi

    输出格式

    如果s1可以通过这些m组关系转化变为s2,输出”YES”,否则输出”NO”。

    样例

    input
    6
    aabbcc
    cdbcad
    4
    a c
    c a
    a d
    b c
    
    output
    YES
    

    提示

    可以转换多次,比如a可以转换为b,而b可以转换为c,则a可以转换为c。
    样例一:aabbcc->cabbcc->cdbbcc->cdbccc->cdbcac->cdbcaa->cdbcad

    思路:逐个字符判断,判断是s1的每个字符是否可以达到s2的对应字符

    #include<iostream>
    #include<string>
    #include<vector>
    #include<queue> 
    #include<cstring>
    using namespace std;
    int n;
    string s1,s2;
    int mark[500];
    char tt;
    int flag=0;
    vector<char>ve[500];
    void bfs(char x){
        queue<char >que;
        que.push(x);
        int c=int (x);
        mark[c]=1;
        while(que.size()){
            char y=que.front();
            que.pop();
            if(y==tt){
                flag=1;
                break;
            }
            char yy;
            int yyy;
            for(int i=0;i<ve[y].size();i++){
                yy=ve[y][i];
                yyy=int(yy);
                if(mark[yyy]==0&&yy!=y){
                    mark[yyy]=1;
                    que.push(yyy);
                }
            }
        }
    }
    int main(){
        cin>>n;
        cin>>s1>>s2;
        int t;
        cin>>t;
        char a,b;
        for(int i=0;i<t;i++){
            cin>>a>>b;
            ve[a].push_back(b);//表示a可以变成b
        }
        for(int i=0;i<n;i++)
        {
            if(s1[i]==s2[i])
                continue ;
            else {
                tt=s2[i];
                memset(mark,0,sizeof(mark));
                flag=0;
                bfs(s1[i]);
                if(flag==0) break; 
            }
         }
         if(flag==0) puts("NO");
         else puts("YES");
        return 0;
    }
  • 相关阅读:
    nginx-dockerfile
    redis-dockerfile
    php-dockerfile
    redis配置优化
    linux 相关命令
    redis服务器主机建议修改配置
    redis主从连接不成功错误
    数据库设计 读多写少、写多读少、写多读多各场景数据库建设方案
    查看容器IP和端口
    JavaScript基础知识六(内存释放、作用域销毁)
  • 原文地址:https://www.cnblogs.com/Accepting/p/11258883.html
Copyright © 2011-2022 走看看