大佬们,帮忙看看我的这个代码错哪了,就是提交成功不了

♚ Painting 2020-04-16 10:23:02
题目:小蒜认为如果一个字符串中每个字符出现的次数都是偶数次,那么这个字符串是美丽的;
现在给你一个字符串 ss,长度不超过 100100,请判断这个字符串是否是美丽的。
示例:输入:abaccaba 输出:Yes
输入:hthth 输出:No

#include<iostream>
using namespace std;
int main()
{
char a[100];
int sum=0;
int i,j,k;
int flag=0;
for(int i=0;i<100;i++)
{
cin>>a[i];
}
for(int j=0;j<100;j++)
{
for(int k=0;k<100;k++) //外层每从新的字符开始,内层都从第一个字符开始遍历
{
if(a[j]==a[k])
{
sum++; //有相同字符就加一
}
}
if(sum%2==0)
{
sum=0;
flag=1;//如果说是偶数次,则将sum置零,重新计数,判断下一个字符是否出现了偶数次
}
if(sum%2!=0)
{
cout<<"No"; //只要有一个字符不是偶数就不是漂亮字符
return 0;
}
}
if(flag==1) cout<<"Yes";
return 0;
}
...全文
420 21 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
♚ Painting 2020-04-20
  • 打赏
  • 举报
回复
引用 21 楼 AndrewLee大好河山的回复:
很想帮忙啊, 就是不太懂啊,帮不上忙啊。
嗯嗯😊,这个问题已经解决了,没事的。 谢谢啦!!
  • 打赏
  • 举报
回复
很想帮忙啊, 就是不太懂啊,帮不上忙啊。
♚ Painting 2020-04-19
  • 打赏
  • 举报
回复
引用 18 楼 智者知已应修善业的回复:
贴出的运行结果:
厉害厉害(´-ω-`),下面那咋还有日历呢/笑
  • 打赏
  • 举报
回复
贴出的运行结果:
♚ Painting 2020-04-19
  • 打赏
  • 举报
回复
引用 16 楼 智者知已应修善业的回复:
之上已经回答了呀,不做标记的,不限字符的,认真看看,虽然不是一遍历的循环量,也是最少的循环量且不调用现成函数的方式,若要实现一遍历,也是有办法实现的,就不是贴出来的写法了。
OK,我一会再看看您发的,谢谢o(^o^)o
  • 打赏
  • 举报
回复
之上已经回答了呀,不做标记的,不限字符的,认真看看,虽然不是一遍历的循环量,也是最少的循环量且不调用现成函数的方式,若要实现一遍历,也是有办法实现的,就不是贴出来的写法了。
♚ Painting 2020-04-19
  • 打赏
  • 举报
回复
引用 14 楼 智者知已应修善业的回复:

char a[100]{};
for (int j = 0; a[j]!='\0'; j++)
{
for (int k = 0; a[k]!='\0'; k++)
哦,您的这个代码就不用求字符串长度了。/厉害哦٩(๑^o^๑)۶
  • 打赏
  • 举报
回复

char a[100]{};
for (int j = 0; a[j]!='\0'; j++)
{
for (int k = 0; a[k]!='\0'; k++)
♚ Painting 2020-04-19
  • 打赏
  • 举报
回复
引用 10 楼 智者知已应修善业的回复:
为何要去获取输入字符串长度?获取长度也是要循环的,虽说调用现成函数,其函数内部也离不开循环,否则,它是如何知道地址头尾?
看我代码有字符串长度?
我的这个代码虽然成功提交,但不够优化,会重复计数已经计数过的字符,如果您不嫌麻烦,可以在帮我解答。 记得您说可以对他做标记,但如何做呢? 谢谢您了/比心
♚ Painting 2020-04-19
  • 打赏
  • 举报
回复
引用 10 楼 智者知已应修善业 的回复:
为何要去获取输入字符串长度?获取长度也是要循环的,虽说调用现成函数,其函数内部也离不开循环,否则,它是如何知道地址头尾?
看我代码有字符串长度?

主要看n=strlen(a),和循环i<n;我就是这样修改的,成功提交了。

#include<iostream>
#include<cstring>
using namespace std;
int main()
{
char a[100];
int sum=0;
int i,j,k;
int flag=0;
cin>>a;
int n=strlen(a);//获得字符串长度
for(int j=0;j<n;j++)
{
for(int k=0;k<n;k++) //外层每从新的字符开始,内层都从第一个字符开始遍历
{
if(a[j]==a[k])
{
sum++; //有相同字符就加一
}
}
if(sum%2==0)
{
sum=0;
flag=1;//如果说是偶数次,则将sum置零,重新计数,判断下一个字符是否出现了偶数次
}
if(sum%2!=0)
{
cout<<"No"; //只要有一个字符不是偶数就不是漂亮字符
return 0;
}
}
if(flag==1) cout<<"Yes";
return 0;
}
♚ Painting 2020-04-19
  • 打赏
  • 举报
回复

#include<iostream>
#include<cstring>
using namespace std;
int main()
{
char a[100];
int sum=0;
int i,j,k;
int flag=0;
cin>>a;
int n=strlen(a);//获得字符串长度
for(int j=0;j<n;j++)
{
for(int k=0;k<n;k++) //外层每从新的字符开始,内层都从第一个字符开始遍历
{
if(a[j]==a[k])
{
sum++; //有相同字符就加一
}
}
if(sum%2==0)
{
sum=0;
flag=1;//如果说是偶数次,则将sum置零,重新计数,判断下一个字符是否出现了偶数次
}
if(sum%2!=0)
{
cout<<"No"; //只要有一个字符不是偶数就不是漂亮字符
return 0;
}
}
if(flag==1) cout<<"Yes";
return 0;
  • 打赏
  • 举报
回复
为何要去获取输入字符串长度?获取长度也是要循环的,虽说调用现成函数,其函数内部也离不开循环,否则,它是如何知道地址头尾?
看我代码有字符串长度?
♚ Painting 2020-04-19
  • 打赏
  • 举报
回复
引用 8 楼 智者知已应修善业的回复:
好的,我的那个问题已经解决了,问题在于他不一定每次都循环100次 解决办法:令n=strlen(a),获取字符串长度,然后在循环时令i<n
  • 打赏
  • 举报
回复
♚ Painting 2020-04-18
  • 打赏
  • 举报
回复
引用 6 楼 智者知已应修善业的回复:
领今天俸禄
好嘞,谢谢您嘞,这个题已经解决了
  • 打赏
  • 举报
回复
领今天俸禄
♚ Painting 2020-04-16
  • 打赏
  • 举报
回复
引用 4 楼 智者知已应修善业的回复:
1对一个字符计数后即时判断奇偶若奇则结束 2对计数过的字符作标记,用虾米作标记?各有巧妙不同,如指定一个特殊字符,对特殊字符跳过。 3使用数组计数,26个字母的数组对号计数实现,可实现一遍历的高效。
嗯嗯,谢谢您啦!!!
  • 打赏
  • 举报
回复
1对一个字符计数后即时判断奇偶若奇则结束 2对计数过的字符作标记,用虾米作标记?各有巧妙不同,如指定一个特殊字符,对特殊字符跳过。 3使用数组计数,26个字母的数组对号计数实现,可实现一遍历的高效。
♚ Painting 2020-04-16
  • 打赏
  • 举报
回复
引用 1 楼 智者知已应修善业的回复:
1长度到底是100还是100100? 2这样循环计数不准的,除非作标记已经计数过了的字符,否则,后面还会被计数到。 3有更巧的办法计数不会发生重复计数。
那个重复计数字符,会影响结果吗,我觉得就是更繁琐一点儿 ,不够简便,但不影响结果吧
♚ Painting 2020-04-16
  • 打赏
  • 举报
回复
引用 1 楼 智者知已应修善业的回复:
1长度到底是100还是100100? 2这样循环计数不准的,除非作标记已经计数过了的字符,否则,后面还会被计数到。 3有更巧的办法计数不会发生重复计数。
谢谢😜你了,这个是100,那个是复制过去的,所以成了100100。 对,您说的那个重复计数,我明白,已经算过的字符还会再重复计算。 那可以用什么不让他重复计数吗,我还是一个大一生,刚学C++,知道的还不多 最后还是谢谢您回答我的问题
加载更多回复(1)

65,180

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧