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; } -
0
#include<bits/stdc++.h> using namespace std; int main() { int n,i; cin>>n; char a[n]; getchar();// 吃掉输入 n 后的换行符(这真的很重要) gets(a);// 读取整行(包括空格) for(i=0;i<n;i++) { if(a[i]=='A'||a[i]=='a')cout<<".- "; if(a[i]=='B'||a[i]=='b')cout<<"-... "; if(a[i]=='C'||a[i]=='c')cout<<"-.-. "; if(a[i]=='D'||a[i]=='d')cout<<"-.. "; if(a[i]=='E'||a[i]=='e')cout<<". "; if(a[i]=='F'||a[i]=='f')cout<<"..-. "; if(a[i]=='G'||a[i]=='g')cout<<"--. "; if(a[i]=='H'||a[i]=='h')cout<<".... "; if(a[i]=='I'||a[i]=='i')cout<<".. "; if(a[i]=='J'||a[i]=='j')cout<<".--- "; if(a[i]=='K'||a[i]=='k')cout<<"-.- "; if(a[i]=='L'||a[i]=='l')cout<<".-.. "; if(a[i]=='M'||a[i]=='m')cout<<"-- "; if(a[i]=='N'||a[i]=='n')cout<<"-. "; if(a[i]=='O'||a[i]=='o')cout<<"--- "; if(a[i]=='P'||a[i]=='p')cout<<".--. "; if(a[i]=='Q'||a[i]=='q')cout<<"--.- "; if(a[i]=='R'||a[i]=='r')cout<<".-. "; if(a[i]=='S'||a[i]=='s')cout<<"... "; if(a[i]=='T'||a[i]=='t')cout<<"- "; if(a[i]=='U'||a[i]=='u')cout<<"..- "; if(a[i]=='V'||a[i]=='v')cout<<"...- "; if(a[i]=='W'||a[i]=='w')cout<<".-- "; if(a[i]=='X'||a[i]=='x')cout<<"-..- "; if(a[i]=='Y'||a[i]=='y')cout<<"-.-- "; if(a[i]=='Z'||a[i]=='z')cout<<"--.. "; if(a[i]=='0')cout<<"----- "; if(a[i]=='1')cout<<".---- "; if(a[i]=='2')cout<<"..--- "; if(a[i]=='3')cout<<"...-- "; if(a[i]=='4')cout<<"....- "; if(a[i]=='5')cout<<"..... "; if(a[i]=='6')cout<<"-.... "; if(a[i]=='7')cout<<"--... "; if(a[i]=='8')cout<<"---.. "; if(a[i]=='9')cout<<"----. "; if(a[i]==' ')cout<<"/ "; if(a[i]=='.')cout<<".-.-.- "; if(a[i]==',')cout<<"--..-- "; }//暴力冤种解法 return 0; //另:这玩意真的有普及-的难度吗? }
- 1
信息
- ID
- 184
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 7
- 标签
- 递交数
- 33
- 已通过
- 9
- 上传者