RC-u1 睿抗,启动!
分数 15
全屏浏览
切换布局
作者 DAI, Longao
单位 杭州百腾教育科技有限公司
你被委托开发一个用于睿抗机器人开发者大赛CAIP-编程技能赛的管理系统,这个管理系统需要一些账号名和密码,你需要按照规则根据账号生成对应的密码,具体规则是:
- 将当前操作的字符串初始化为提供的账号名。
- 每次生成会规定一个生成轮次 N。
- 对于每一轮次,按顺序执行以下操作:
- 对于当前操作的字符串,将所有大写字母替换为后一个字母;如将 A 替换为 B,B 替换为 C,以此类推。特别地,将 Z 替换为 A。对于所有小写字母,将其替换为前一个字母,如将 z 替换为 y,以此类推。特别地,将 a 替换为 z。
- 对于完成上一步后的字符串,如果连续出现了至少三个大写字母(不一定要相同),则将这些连续的大写字母全部改为小写字母;对于连续出现了至少三个小写字母(不一定要相同),则将这些连续的小写字母全部改为大写字母。注意修改不在原地进行,即修改结果不影响本次步骤中对于连续的判定。
现在给定账号名以及轮次,请你生成对应的密码。
输入格式:
输入第一行是一个正整数 N (1≤N≤10),表示生成的轮次数;
输入第二行是一个字符串 S (1≤∣S∣≤100),表示需要操作的账号名。账号名只包含大小写及数字。
注意:如果 S 为 yourname
,请将 S 改为你的名字的拼音拼写,全小写,不包含空格。如你的名字为张三,则你操作的字符串应为 zhangsan
。请务必写真实姓名,写错误的名字可能会导致成绩被取消。
输出格式:
输出两行,第一行为账号名,第二行为根据规则生成的密码。
输入样例:
1
DOGcat1234XZxzABabFFXIV
输出样例:
DOGcat1234XZxzABabFFXIV
ephBZS1234YAwyBCzaggyjw
输入样例:
2
DOGcat1234XZxzABabFFXIV
输出样例:
DOGcat1234XZxzABabFFXIV
DOGcat1234ZBvxCDYZFFXIV
#include<iostream>
using namespace std;
string slove(string s){
for(int i=0;i<s.size();i++){
if(s[i]>='a'&&s[i]<='z'){
s[i]=s[i]-1;
if(s[i]<'a')s[i]+=26;
}else if(s[i]>='A'&&s[i]<='Z'){
s[i]=s[i]+1;
if(s[i]>'Z')s[i]-=26;
}
}
int da=0,xiao=0;
int i,j;
for(i=0,j=0;i<s.size();i++){
if(s[i]>='a'&&s[i]<='z'){
xiao++;
if(da!=0){
if(i-j>2){
for(int t=j;t<i;t++)s[t]=s[t]+32;
}
j=i;
da=0;
}
}else if(s[i]>='A'&&s[i]<='Z'){
da++;
if(xiao!=0){
if(i-j>2){
for(int t=j;t<i;t++)s[t]=s[t]-32;
}
j=i;
xiao=0;
}