社区讨论
求助,写老师100分代码只得30
P1098[NOIP 2007 提高组] 字符串的展开参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @m44xky5x
- 此快照首次捕获于
- 2024/12/01 09:36 去年
- 此快照最后确认于
- 2024/12/01 11:50 去年
CPP
#include<bits/stdc++.h>
using namespace std;
int p1,p2,p3;
string str;
int main(){
cin>>p1>>p2>>p3;
cin>>str;
stringstream res;
for(int i=0;i<str.size();i++){
if(i==0||i==str.length()-1){
res<<str[i];
continue;
}
if(str[i]=='-'){
char left=str[i-1];
char right=str[i+1];
if(left>=right){
res<<'-';
continue;
}
if((islower(left)&&islower(right)) || (isdigit(left) && isdigit(right))){
if(p3==1){
for(char ch=left+1;ch<right;ch++){
for(int j=0;i<p2;j++){
if(p1==1){
res<<ch;
}else if(p1==2){
res<<char(toupper(ch));
}else if(p1==3){
res<<'*';
}
}
}
}else if(p3==2){
for(char ch=right-1;ch<left;ch--){
for(int j=0;j<p2;j++){
if(p1==1){
res<<ch;
}else if(p1==2){
res<<char(toupper(ch));
}else if(p1==3){
res<<'*';
}
}
}
}
}else{
res<<'-';
}
}else{
res<<str[i];
}
}
cout<<res.str()<<endl;
return 0;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...