Letters[Codeforces-43B]
https://vjudge.net/problem/CodeForces-43B
- Letters 43B
- Codeforces Beta Round #42 (Div. 2)
时间限制 2000ms 内存限制 256MB
题目表述比较啰嗦,大意就是能不能用给定的字符串S1中的所有字符构成另一个字符串S2。只需要统计S1中每个字符出现的频率次数,在构造第二个串S2时,判断由S1提供的字符够不够用即可。至于统计结果的存放,依然使用到了ASCII码的下标对应关系。
1 #include<iostream> 2 using namespace std; 3 char str1[1000], str2[1000]; 4 int letters[256] = { 0 }; 5 int main() 6 { 7 cin.getline(str1, 1000); 8 cin.getline(str2, 1000); 9 int i; 10 for (i = 0; str1[i] != 0; i++) 11 letters[str1[i]]++; 12 for (i = 0; str2[i] != 0; i++) 13 { 14 if (str2[i] != ' ') 15 { 16 letters[str2[i]]--; 17 if (letters[str2[i]] < 0) 18 { 19 printf("NO"); 20 return 0; 21 } 22 } 23 } 24 printf("YES"); 25 return 0; 26 }