2019阿里笔试题目

2019阿里笔试题目输入:singer_周杰|周杰伦|刘德华|王力宏;song_冰雨|北京欢迎你|七里香;actor_周杰伦|孙俪;请播放周杰伦的七里香给我听输出:请播放周杰伦/singer/actor的七里香/song给我听当场没有写出来,所以也不知道其他样例啥样子,只好先ac了样例再说吧#include<iostream>#include<string&gt…

大家好,又见面了,我是你们的朋友全栈君。

输入:

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的小伙伴,希望能把题目发给我,我还想继续做>_<

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/142520.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号