zoukankan      html  css  js  c++  java
  • Codeforces Round #604 (Div. 2) A. Beautiful String

    【题目链接】A题链接

    【题目类型】模拟

    【题目大意】输入一个t表示有t组测试样例。每组测试样例有一个字符串,字符串中含有abc以及?,现在要求你替换字符串中所有的问号,使得字符串满足不会有连续两个一样的字符,如果无法构成则输出-1如果可以构成则输出字符串。

    【解题思路】就按照题目的意思去模拟,主要是在于判断这几个位置的?

    开头连续 ???abcabc
    中间连续 abc???abc
    末尾连续 abc???
    普通位置的都是比较好判断的 比如a?c中间就是b

    还有判断技巧,判断一样不如判断不一样,怎么说呢?看代码

    const int maxn = 1e5+50;
    char s[maxn];
    int main(){
        int t; RD(t);
        REP(T, t){
            scanf("%s", s+1);
            int len = strlen(s+1);
            bool flag = true;
            for(int i = 1; i <= len; i++){
                if(s[i] == '?'){
                    if(s[i-1] != 'a'&& s[i+1]!='a'){
                        s[i] = 'a';
                    }
                    else if (s[i-1] != 'b'&& s[i+1]!='b'){
                        s[i] = 'b';
                    }
                    else if (s[i-1] != 'c'&& s[i+1] != 'c'){
                        s[i] = 'c';
                    }
                }
                else{
                    if(s[i] == s[i-1]){
                        flag = false;
                    }
                }
            }
            if(!flag)OT(-1), OT('
    ');
            else{
                for(int i = 1; i <= len; i++){
                    OT(s[i]);
                }
                OT('
    ');
            }
    
        }
    
    }
    
    
  • 相关阅读:
    day 66
    day 66 作业
    day 65 作业
    day 55 Ajax
    day 56 forms组件
    day 59
    day 58 cookie与session 中间件
    day 54
    day 53
    day 52
  • 原文地址:https://www.cnblogs.com/ygbrsf/p/12519588.html
Copyright © 2011-2022 走看看