1 条题解
-
0
#include <iostream> #include <vector> #include<sstream> using namespace std; void lowHighTransform(string &input) { int low=0,high=0; // 对比大小写哪个多 for(int i=0;i<input.length();i++) { char tmp=input[i]; if(isalpha(tmp)) { if(islower(tmp)) low++; if(isupper(tmp)) high++; } } for(int i=0;i<input.length();i++) { if(low>high) input[i]=tolower(input[i]); else if(low<high) input[i]=toupper(input[i]); } } int main(int argc, char *argv[]) { int everyNchars; cin>>everyNchars; cin.ignore(); string input; cin>>input; vector<string> subStrings; // 分割字符串 string tmp; stringstream ss; ss<<input; while(getline(ss,tmp,'-')) subStrings.push_back(tmp); // 处理除了第一个以外的字符串 string sumString; for(int i=1;i<subStrings.size();i++) sumString.append(subStrings[i]); // 创建一个新的数组存储新的子串 vector<string> subStrings2={subStrings[0]}; for(int i=0;i<sumString.length();) { string cut=sumString.substr(i,everyNchars); subStrings2.push_back(cut); i+=everyNchars; } for(int i=0;i<subStrings2.size();i++) { lowHighTransform(subStrings2[i]); cout<<subStrings2[i]; if(i!=subStrings2.size()-1) cout<<"-"; } }
- 1
信息
- ID
- 52
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 5
- 标签
- 递交数
- 198
- 已通过
- 83
- 上传者