NC221824. RedandBlueandGreen
描述
输入描述
第一行一个正整数,代表字符串的长度。
第二行为一个只含有'R'、'B'、'G'这三种字符的字符串。
输出描述
请输出小红操作后的字符串。请务必保证操作次数不超过。有多种解法的话输出任意即可。
示例1
输入:
5 GBGGB
输出:
GBGRB
说明:
只需要把第四个字符改成R即可。示例2
输入:
6 BBBBBB
输出:
RBRBGB
说明:
修改了第一个、第三个、第五个字符。C++(clang++11) 解法, 执行用时: 9ms, 内存消耗: 808K, 提交时间: 2021-05-16 19:56:58
#include<bits/stdc++.h> using namespace std; int main(){ int n; string s;string ss = "RBG" ; cin >> n; cin >> s; for(int i = 0; i < s.size(); i++) { while(s[i]==s[i+1]) s[i+1]=ss[rand()%3]; } cout << s ; return 0; }
Python3(3.9) 解法, 执行用时: 82ms, 内存消耗: 6928K, 提交时间: 2021-05-14 20:59:43
n = int(input()) s = list(input()) d = {'R','G','B'} for i in range(1,n,2): s[i] = list(d-{s[i-1]} - ({s[i+1]} if i+1 < n else set()))[0] print(''.join(s))