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

♚ 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;
}
...全文
479 21 打赏 收藏 转发到动态 举报
写回复
用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)
内容概要:本文档介绍了一个基于MATLAB/Simulink平台的综合性科研资源共享项目,核心内容为四旋翼无人机俯仰姿态保持的模糊自整定PID控制系统设计与仿真,提供完整的Matlab代码和Simulink仿真实现资源。项目进一步拓展至无人机轨迹跟踪、多控制策略对比(如线性MPC、非线性NMPC、强化学习RL及混合MPC-RL)、储能优化、电力系统调度、路径规划、神经网络预测等多个前沿科研方向。文档强调科研不仅需要严谨思维与勤奋,更要善于“借力”,通过成熟案例启发创新思路,帮助研究者避免误区,利用高质量资源激发科研灵感,加速高水平成果的复现与产出。; 适合人群:具备一定MATLAB编程基础,从事自动化、控制工程、电力系统、机器人或人工智能等相关领域的科研人员、研究生及工程师,尤其适合希望快速复现高水平论文成果的研究者。; 使用场景及目标:① 实现模糊PID控制在无人机姿态控制中的应用与仿真;② 对比分析不同先进控制策略(如MPC、RL)在轨迹跟踪中的性能表现;③ 借助提供的代码与模型,完成科研项目中的仿真验证、论文复现或算法优化任务。; 阅读建议:建议读者按照资源目录顺序逐步学习,优先掌握核心控制方法(如模糊PID、MPC)的实现逻辑,结合代码与仿真模型进行调试与改进,从而深化对控制理论的理解并推动自身科研工作的创新。
内容概要:本文档围绕“2023年IEEE ICMA顶刊复现多欠驱动水面无人艇误差约束协同路径跟踪控制(Matlab代码实现)”展开,详细介绍了一项针对多欠驱动水面无人艇的协同路径跟踪控制技术的研究与实现。该研究通过引入误差约束机制,旨在提升无人艇在复杂海洋环境下的路径跟踪精度与系统稳定性。文档不仅提供了完整的Matlab代码实现,还涵盖了控制算法的设计原理、数学建模过程以及仿真实验结果分析。此外,文档还列举了多个相关科研方向,如智能优化算法、机器学习、路径规划、无人机控制、电力系统优化等,展示了其在多学科交叉领域的广泛应用前景,并倡导科研工作者善用工具资源,提升研究效率。; 适合人群:具备一定编程基础,尤其是熟练掌握Matlab/Simulink环境的科研人员、工程师,以及对无人艇控制、路径跟踪、协同控制、非线性系统控制等领域感兴趣的研究生和高校学者。; 使用场景及目标:① 开展多欠驱动水面无人艇的协同路径跟踪控制研究;② 设计与实现具有误差约束的先进控制算法;③ 利用Matlab进行控制系统建模、仿真与性能验证;④ 探索将智能优化算法与现代控制理论相结合,解决复杂工程系统中的实际控制问题。; 阅读建议:建议读者按照文档的逻辑顺序系统学习,重点理解控制算法的设计思路与数学推导过程,并结合所提供的Matlab代码进行动手实践与仿真调试,以深化对理论知识的掌握。同时,鼓励读者积极查阅相关领域的最新文献,紧跟学术前沿,不断拓展研究视野,激发创新灵感。

65,212

社区成员

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

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