码迷,mamicode.com
首页 > 其他好文 > 详细

【Codeforces 716B】Complete the Word

时间:2020-01-29 20:01:37      阅读:71      评论:0      收藏:0      [点我收藏+]

标签:==   namespace   问号   puts   test   i+1   href   har   end   

题目链接

【题解】


当时竟然用线段树做的这题。。。
遍历每个位置。
看看每个位置开始的26个除了问号的字母有没有重复的。
没有的话就ok。
然后按顺序放每个字母就好

【代码】

#include <iostream>
#include <cstdio>
using namespace std;

string s;
int temp[100];

void _nextAlpha(char &key,int i){
    while (key<='Z' && temp[key-'A']==i) key++;
}

int main(){
    ios::sync_with_stdio(0),cin.tie(0);
    cin >> s;
    int len = s.size();
    for (int i = 0;i < len;i++){
        if (i+26-1>=len) break;
        bool ok = true;
        for (int j = i;j <= i+26-1 && j<len;j++){
            if (s[j]=='?') continue;
            if (temp[s[j]-'A']==(i+1)){
                ok = false;
                break;
            }else{
                temp[s[j]-'A'] = (i+1);
            }
        }
        if (ok){
            char key = 'A';
            _nextAlpha(key,i+1);
            for (int j = i;j <= i+26-1 && j<len;j++){
                if (s[j]=='?'){
                    s[j]=key;
                    temp[key-'A']=i+1;
                    _nextAlpha(key,i+1);
                }
            }
            for (int i = 0;i < len;i++){
                if (s[i]=='?') s[i]='A';
            }
            cout<<s<<endl;
            return 0;
        }
    }
    puts("-1");
    return 0;
}

【Codeforces 716B】Complete the Word

标签:==   namespace   问号   puts   test   i+1   href   har   end   

原文地址:https://www.cnblogs.com/AWCXV/p/12240872.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!