3条回答 默认 最新
- 三块不一样的石头 2022-10-16 15:42关注
T1
#include<iostream> using namespace std; bool cmp(char x){ if(x>='A' && x<='Z') return true; if(x>='a' && x<='z') return true; return false; } int main() { string s; getline(cin,s); int head=0,tail=s.size(),flag=0; while (head<=tail){ if(flag==0 && cmp(s[head])) flag = 1; else if(flag==1 && cmp(s[tail])) { flag = 0; char temp = s[head]; s[head] = s[tail]; s[tail] = temp; } flag == 0 ? head++ : tail--; } cout << s << endl; return 0; }
T2 (更优化,只有长度大于1才显示前方数字)
#include<iostream> using namespace std; string ZIP(string s){ string result = ""; long num = 1,length = s.size(); char flag = s[0]; for(int z=1;z<length;z++){ if(flag==s[z]) num++; else { result += flag; result += to_string(num); flag = s[z]; num = 1; } } result += flag; result += to_string(num); return result.size() < s.size() ? result : s; } // aaaaaba -> a5b1a1 int main() { string s; cin >> s; cout << ZIP(s); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 在若依框架下实现人脸识别
- ¥15 网络科学导论,网络控制
- ¥100 安卓tv程序连接SQLSERVER2008问题
- ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
- ¥15 metadata提取的PDF元数据,如何转换为一个Excel
- ¥15 关于arduino编程toCharArray()函数的使用
- ¥100 vc++混合CEF采用CLR方式编译报错
- ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
- ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
- ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同