大家好,又见面了,我是你们的朋友全栈君。
输入:
singer_周杰|周杰伦|刘德华|王力宏;song_冰雨|北京欢迎你|七里香;actor_周杰伦|孙俪;
请播放周杰伦的七里香给我听
输出:
请播放 周杰伦/singer/actor 的 七里香/song 给我听
当场没有写出来,所以也不知道其他样例啥样子,只好先ac了样例再说吧
#include <iostream>
#include <string>
using namespace std;
string str[100][1000];
int main(){
string input;
cin >> input;
string input2;
cin >> input2;
int j = 0, m = 0;
int l = 0;
for (int i = 0; i < input.length(); i++){ //处理第一句
if (input[i] == ';' || input[i] == '|' || input[i] == '_'){
str[j][m].append(input.substr(l, i - l));
if (input[i] == ';'){
j++;
m = 0;
}
else
m++;
l = i + 1;
continue;
}
}
//接下来就把样例当做固定格式来处理,即“请播放”,“的”,“给我听”永远不变,然后我的代码就很简单了
l = 6;
cout << "请播放 ";
for (int i = 6; i < input2.length(); i++){
string t;
if (input2.substr(i, 2) == "的"){
t = input2.substr(l, i - l);
cout << t ;
for (int k = 0; k < j; k++){
for (int n = 1; str[k][n] != ""; n++){
if (str[k][n] == t)
cout << '/' << str[k][0];
}
}
cout << " 的" ;
l = i + 2;
t = input2.substr(l, input2.length() - 6 - l);
cout << t;
for (int k = 0; k < j; k++){
for (int n = 1; str[k][n] != ""; n++)
if (str[k][n] == t)
cout << '/' << str[k][0];
}
cout << " 给我听" << endl;
}
}
return 0;
}
如果有还记得题目的小伙伴或者ac的小伙伴,希望能把题目发给我,我还想继续做>_<
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/142520.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...