2 条题解
-
0
讲一下题目里的参考代码怎么用吧:
// 这里声明了一个字符串数组并全部赋了值,索引从 0 到 25,依次为 A 到 Z 的电码 // 后面代码的是同样的道理 string letterMorse[26] = { ".-", // A "-...", // B "-.-.", // C "-..", // D ".", // E "..-.", // F "--.", // G "....", // H "..", // I ".---", // J "-.-", // K ".-..", // L "--", // M "-.", // N "---", // O ".--.", // P "--.-", // Q ".-.", // R "...", // S "-", // T "..-", // U "...-", // V ".--", // W "-..-", // X "-.--", // Y "--.." // Z }; string numMorse[10] = { "-----", // 0 ".----", // 1 "..---", // 2 "...--", // 3 "....-", // 4 ".....", // 5 "-....", // 6 "--...", // 7 "---..", // 8 "----." // 9 }; string dotMorse = ".-.-.-"; // 点号 string commaMorse = "--..--"; // 逗号 string solve(int len, string oristr) { // 当时为了方便生成测试数据将解法写在 solve 函数里 string res = ""; for (int i = 0; i < len; i++) { // 如果看不懂下面的代码,就去了解 ASCII 码 if (oristr[i] >= 'A' && oristr[i] <= 'Z') { res += letterMorse[oristr[i] - 'A']; // 假设 oristr[i] 为 'B',那么 oristr[i] - 'A' 的值就是 1 // 故字符串 res 就会加上 letterMorse[1],即字母 B 的电码 } else if (oristr[i] >= 'a' && oristr[i] <= 'z') { res += letterMorse[oristr[i] - 'a']; } else if (oristr[i] >= '0' && oristr[i] <= '9') { res += numMorse[oristr[i] - '0']; } else if (oristr[i] == '.') { res += dotMorse; } else if (oristr[i] == ',') { res += commaMorse; } else if (oristr[i] == ' ') { res += "/"; } if (i < len - 1) { res += " "; } } return res; }
信息
- ID
- 184
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 7
- 标签
- 递交数
- 33
- 已通过
- 9
- 上传者