排序

问题 A: 排序

时间限制: 1 Sec  内存限制: 128 MB
提交: 0  解决: 0
[提交] [状态] [讨论版] [命题人:admin]

题目描述

给定一组无序的非负整数,每个数都>=32且<=126,将这串整数按照从小到大的顺序排列,并根据每个数对应的ASCII码拼接成字符串。 
你需要找到这个字符串中,首次出现另一个字符串的位置(下标从0开始)。若不存在首次出现,则输出-1。 

输入

第一行输入n,n<=10000; 
第二行输入n个非负整数,每个数都>=32且<=126; 
第三行输入一个查询字串,长度<=10000。 

输出

输出首次出现的位置。

样例输入 Copy

5
65 66 67 66 67
BC

样例输出 Copy

2

提示

65 A 
66 B 
67 C 
生成字符串ABBCC,并查询BC,得位置为2。 
 
 
 
 1 #include <iostream>
 2 #include <algorithm>
 3 using namespace std;
 4 int a[200];
 5 int main(){
 6     int n;
 7     cin >> n;
 8     for(int i = 0; i < n; i++){
 9         cin >> a[i];
10     }
11     sort(a, a + n);
12     string s1 = "";
13     for(int i = 0; i < n; i++){
14         s1 += a[i];
15     }
16     string s2;
17     cin >> s2;
18     int k = s1.find(s2);
19     if(string::npos == k){
20         cout << "-1";
21     }else{
22         cout << k;
23     }
24     return 0;
25 } 

 

posted @ 2019-03-19 23:29  kakaluotedj  阅读(103)  评论(0)    收藏  举报