# UVA 10252 Common Permutation ## 題目連結 [UVA 10252](https://vjudge.net/problem/UVA-10252) ### 題目內容 Given two strings of lowercase letters, a and b, print the longest string x of lowercase letters such that there is a permutation of x that is a subsequence of a and there is a permutation of x that is a subsequence of b. ### 輸入限制 Input file contains several lines of input. Consecutive two lines make a set of input. That means in the input file line 1 and 2 is a set of input, line 3 and 4 is a set of input and so on. The first line of a pair contains a and the second contains b. Each string is on a separate line and consists of at most 1000 lowercase letters ### 輸出限制 For each set of input, output a line containing x. If several x satisfy the criteria above, choose the first one in alphabetical order. ### 解題思路 計算出兩字串每個字母的頻率,要輸出比較小的那一方的相同字母數,要注意的是當有其中一字串的內容為空白,就必須輸出空白。 ### 程式碼 ```cpp= #include<bits/stdc++.h> using namespace std; int main(){ string a,b; int cota[26],cotb[26]; while(getline(cin,a)){ getline(cin,b); if(a==" " || b==" "){ cout<<"\n"; } memset(cota,0,sizeof cota); memset(cotb,0,sizeof cotb); for(int i=0;i<a.length();i++){ cota[a[i]-'a']++; } for(int i=0;i<b.length();i++){ cotb[b[i]-'a']++; } for(int i=0;i<26;i++){ for(int j=min(cota[i],cotb[i]);j>0;j--){ cout<<(char)('a'+i); } } cout<<"\n"; } } ``` ## 測資 ### Sample input pretty women walking down the street ### Sample output e nw et ## 中文題目連結 [zerojudge e507](https://zerojudge.tw/ShowProblem?problemid=e507)