zoukankan      html  css  js  c++  java
  • A

    题意:给你一串只含a、b、c、?的字符串s,?可以换成a/b/c,要求两两相邻不能相同,如果存在则输出任一种,否则输出-1;

    思路:(只有当所给的字符串含两个相邻相同的这种情况才会输出-1)

       循环走到s[i]==‘?’的时候,先与s[i-1]做比较,s[i]=(s[i-1]-'a'+1)%3+'a',往后移一个,如果第一个就为?,则直接存a;再和s[i+1]做比较,如果s[i]==s[i+1],

    那么s[i]=(s[i]-'a'+1)%3+'a',再往后移一个。

    #include<bits/stdc++.h>
    #define N 1e5+10
    using namespace std;
    int main(){
            int t,i,flag;
            char s[int(N)];
            while(~scanf("%d%*c",&t)){
                    while(t--){
                            gets(s);
                            for(i=0;s[i]!='';i++){
                                    if(s[i]=='?'){
                                            if(i!=0){
                                                    s[i]=(s[i-1]-'a'+1)%3+'a';
                                            }else{
                                                    s[i]='a';
                                            }
                                            if(s[i+1]==s[i]){
                                                    s[i]=(s[i]-'a'+1)%3+'a';
                                            }
                                    }
                            }
                            for(i=flag=0;i<strlen(s)-1;i++){
                                    if(s[i]==s[i+1])
                                           flag=1;
                            }
                            if(flag==1)
                                    printf("-1
    ");
                            else printf("%s
    ",s);
                    }
            }
    }
    View Code

       

  • 相关阅读:
    跨浏览器的事件对象(EventUtil)
    原型 Object.create
    DC大牛的function扩展
    事件代理 proxy
    错误处理程序
    JQuery 插件
    关于ClownFish的问题
    C#拾遗
    Jquery技巧
    防盗链
  • 原文地址:https://www.cnblogs.com/DreamingBetter/p/12197701.html
Copyright © 2011-2022 走看看