標籤:
題目1199:
1 #include <iostream> 2 #include <cstring> 3 #include <cstdio> 4 #include <vector> 5 using namespace std; 6 struct node{ 7 vector<int> v; 8 }; 9 node map[‘z‘+1];10 int main(){11 string s;12 while(cin>>s){13 int i;14 for(i=0;i<s.length();i++){15 map[s[i]].v.push_back(i);16 }17 for(i=0;i<s.length();i++){18 if(map[s[i]].v.size()>1){19 int j=0;20 cout<<s[i]<<":"<<map[s[i]].v[j];21 //map[s[i]].v.erase(map[s[i]].v.begin());22 for(j=1;j<map[s[i]].v.size();j++){23 cout<<","<<s[i]<<":"<<map[s[i]].v[j];24 //map[s[i]].v.erase(map[s[i]].v.begin());25 }26 //map[s[i]].v.clear();27 //cout<<map[s[i]].v.size()<<endl;28 for(j=map[s[i]].v.size();j;j--){29 map[s[i]].v.erase(map[s[i]].v.begin());30 }31 //cout<<map[s[i]].v.size()<<endl;32 cout<<endl;33 }34 }35 for(i=0;i<s.length();i++){36 while(map[s[i]].v.size()){37 map[s[i]].v.erase(map[s[i]].v.begin());38 }39 }40 }41 return 0;42 }
時間限制:1 秒
記憶體限制:32 兆
特殊判題:否
提交:1958
解決:957
-
題目描述:
-
對給定的一個字串,找出有重複的字元,並給出其位置,如:abcaaAB12ab12
輸出:a,1;a,4;a,5;a,10,b,2;b,11,1,8;1,12, 2,9;2,13。
-
輸入:
-
輸入包括一個由字母和數字組成的字串,其長度不超過100。
-
輸出:
-
可能有多組測試資料,對於每組資料,
按照範例輸出的格式將字元出現的位置標出。
-
範例輸入:
-
abcaaAB12ab12
-
範例輸出:
-
a:0,a:3,a:4,a:9b:1,b:101:7,1:112:8,2:12
-
提示:
-
1、下標從0開始。
2、相同的字母在一行表示出其出現過的位置。
-
來源:
-
2005年華中科技大學電腦保研機試真題
2005年華中科技大學電腦保研機試真題 找位置