题解 | #出现一次的数字#
删除字符串中出现次数最少的字符
http://www.nowcoder.com/practice/05182d328eb848dda7fdd5e029a56da9
//c错误版本
#include <iostream>
using namespace std;
int main ()
{
string st;
while(cin>>st)
{
int ar[26]={0};
for (int i=0;i<st.size();i++)
{
int index=st[i]-'a';
ar[index]++;
}
int min_index=20;
for (int i=0;i<26;i++)
{
if(ar[i]>0)
min_index=min(min_index,ar[i]);//找出出现的最小的数
}
for (int i=0;i<st.size();i++)
{
if(ar[st[i] - 'a']>min_index)//输出大于此次数的字母
printf("%c",st[i]);
}
cout<<endl;
}
} 正确版本。
花了一个小时
半天才de出来
#include <iostream>
using namespace std;
int main ()
{
string st;
while(cin>>st)
{
int ar[26]={0};
for (int i=0;i<st.size();i++)
{
int index=st[i]-'a';
ar[index]++;
}
int min_index=20;
for (int i=0;i<26;i++)
{
if(ar[i]>0)
min_index=min(min_index,ar[i]);//找出出现的最小的数
}
for (int i=0;i<st.size();i++)
{
if(ar[st[i] - 'a']>min_index)//输出大于此次数的字母
printf("%c",st[i]);
}
cout<<endl;
}
}
查看9道真题和解析