A1092
柳神的思路,自己完成,,,
#include<iostream>
#include<vector>
using namespace std;
int main()
{
string a,b;
cin>>a>>b;
int ans=0;
vector<int> book(101);
for(int i=0;i<a.length();i++)
{
book[a[i]]++;//每一个珠子出现的次数
}
for(int i=0;i<b.length();i++)
{
if(book[b[i]]>0)
{
book[b[i]]--;
}
else
{
ans++;
}
}
if(ans==0)
{
printf("Yes ");
printf("%d",a.length()-b.length());
}
if(ans!=0)
{
printf("No ");
printf("%d",ans);
}
return 0;
}
B1042
这道题要注意两个点
1.book数组里面存储的应该是数字,所以存储的时候要 -‘a’(book里面存储字符应该也可以)
2.在求哪个字母出现的次数最大时,应该拿每一个数与第一个数比,而不是与0比
ps:这是我自己写的哈哈哈
//首先,要出现的是英文字母
#include<iostream>
#include<cctype>
#include<vector>
#include<string>
using namespace std;
int main()
{
string s,ans;
getline(cin,s);
for(int i=0;i<s.length();i++)
{
if(tolower(s[i])>='a'&&tolower(s[i])<='z')//只统计英文字母
{
ans+=tolower(s[i]);
}
}
vector<int> book(101);
int b=0;
for(int i=0;i<ans.length();i++)
{
book[ans[i]-'a']++;
}
int a=book[0];
for(int i=1;i<26;i++)
{
if(book[i]>a)
{
a=book[i];
b=i;
}
}
printf("%c %d",b+'a',a);
return 0;
}
B1043 18/20 放弃了
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int> a(101);
string b;
getline(cin,b);
int i;
for(i=0;i<b.length();i++)
{
a[b[i]]++;
}
while(a['P']>0||a['A']>0||a['T']>0||a['e']>0||a['s']>0||a['t']>0)
{
if(a['P']-->0) printf("P");//a['P']--;
if(a['A']-->0) printf("A");//a['A']--;
if(a['T']-->0) printf("T");//a['T']--;
if(a['e']-->0) printf("e");//a['e']--;
if(a['s']-->0) printf("s");//a['s']--;
if(a['t']-->0) printf("t");//a['t']--;
}
return 0;
}