1 条题解
-
0
注意他给的示例输出是错的! 被替换为******的后面也是要加下划线的
#include <iostream> #include <string> #include <vector> using namespace std; string stringEncryption(int index, string input) { string output = ""; vector<string> temp; for (int left = 0, right = 0; left < input.length(), right < input.length(); left++) { //相当于做一个split,把string用下划线分开 if (input[left] == '_') { if (!(left - right == 0)) { string in = input.substr(right, left - right); temp.push_back(in); } right = left + 1; } if (input[left] == '\"') { //如果双引号内的内容为空,就把双引号连同他前面的命令一起加进去 if (input[left + 1] == '"') { left += 2; string in = input.substr(right, left - right); temp.push_back(in); right = left + 1; } else { right = left + 1; left++; //找到下一个双引号 while (input[left] != '\"'&&left < input.length()) left++; //把双引号内的内容写入 string in = input.substr(right, left - right); temp.push_back(in); right = left + 1; } } } if (index >= temp.size()) return "ERROR"; for (int i = 0; i < temp.size(); i++) { if (i != index) output.append(temp[i]); else output.append("******"); if (i != temp.size() - 1) output.append("_"); } return output; } int main(int argc, char *argv[]) { int index = 0; cin >> index; string input; cin >> input; cout << stringEncryption(index, input); }
- 1
信息
- ID
- 108
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 8
- 标签
- (无)
- 递交数
- 253
- 已通过
- 46
- 上传者