0
已解决
棠梨煎雪
中级守护
中级守护
精英怪 难度2 悬赏20
#include <iostream>
using namespace std;
int main(){
string a;
cin>>a;
int cd=a.size();
for(int i=0;i<cd;i++)
{
for(int j=0;j<=i;j++)
{
if(a[i]==a[j]){
a[i]='1';
}
}
}
for(int i=0;i<cd;i++)
{
if(a[i]!='1')
{
cout<<a[i];
}
}
return 0;
}
棠梨煎雪在2018-03-18 14:02:46追加了内容
改了一下,可还是80分。
#include <iostream>
using namespace std;
int main(){
string a;
cin>>a;
int cd=a.size();
for(int i=0;i<cd;i++)
{
for(int j=0;j<i;j++)
{
if(a[i]==a[j]){
a[i]='1';
}
}
}
for(int i=0;i<cd;i++)
{
if(a[i]!='1')
{
cout<<a[i];
}
}
return 0;
}
棠梨煎雪在2018-03-18 14:16:26追加了内容
@栾峻岩
#include <iostream>
using namespace std;
int b[1010]={0};
int main(){
string a;
cin>>a;
int cd=a.size();
for (int i=0;i<cd-1;i++)
{
for (int j=i+1;j<cd;j++)
{
if(a[i]==a[j]){
b[j]=-1;
}
}
}
for(int i=0;i<cd;i++)
{
if(b[i]!=-1)
{
cout<<a[i];
}
}
return 0;
}
0
已采纳
栾峻岩
初级天翼
初级天翼
for(int i=0;i<cd;i++)
{
for(int j=0;j<=i;j++)
第七至第九行,错了,
应是:
for (int i=0;i<cd-1;i++)
{
for (int j=i+1;j<cd;j++)
还有第12行:
a[i]='1';
一个字符串里面可能有‘1’,但没有-1.
所以改为:
再循环前定义:b[1010]={0};
在第12行改为: b[j]=-1;
对应的,第18行也要改!
100AC
栾峻岩在2018-03-18 22:35:57追加了内容
加:#include<string>
把cin>>a改为getline(cin,a);
1
储金洋
新手光能
新手光能
这题你用桶排吧,程序如下:
循环从0~s1.size()-1
{
count[s1[i]]++;
}
循环从0~s1.size()-1
{
if(count[s1[i]]>=1)
cout<<s1[i];
count[s1[i]]=0;
}
1
宋婉婷
中级守护
中级守护
棠梨煎雪 你好,我没有看出你的错误,但我可以跟你讲一下我的思路:
先在全局变量里定义一个整形数组b,大小为10001个
然后定义一个string类型的字符串a,再用getline输入
接着循环从0开始,到a.size( )-1结束
b[a[i]]=1;
第二个循环(不是双重循环)和第一个循环一模一样,里面是核心:
if(b[a[i]]==1)
{
cout<<a[i];
b[a[i]]=0;
}
最后return 0就好了
我就是这样做的,很方便,100分。
0
0
0
0
0
0
0