蓝桥杯题目——翻硬币无需修改‘*’与’o‘的特殊解法及其所包含的思想 时快讯
前言
本文介绍蓝桥杯题目——翻硬币的一种无需对字符串进行操作的解法及该解法所包含的思想。
题目信息
桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零)。
(资料图片仅供参考)
比如,可能情形是:**oo***oooo
如果同时翻转左边的两个硬币,则变为:oooo***oooo
现在的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个硬币,那么对特定的局面,最少要翻动多少次呢?
我们约定:把翻动相邻的两个硬币叫做一步操作。
输入格式
两行等长的字符串,分别表示初始状态和要达到的目标状态。
输出格式
一个整数,表示最小操作步数
数据范围
输入字符串的长度均不超过100。
数据保证答案一定有解。
输入样例
**********o****o****
输出样例
5
解题思维
假设这样一组输入:
**********o*********
因为每次要翻动两个硬币,想单独地把第一个硬币变成o,就一定会带来副作用(影响其他的硬币),即使这个硬币不在第一个位置。
也就意味着我们用任何方法也不能单独地将一个硬币反转,必须要有另一个同样需要反转的硬币。
因此,题目给的数据中,两个字符串不同之处的数量一定为偶数,否则第一个字符串无论怎样翻转也不能达到第二个字符串(目标)的状态。
思想(1)
因为每个硬币只有正、反两种可能,所以一组硬币(一次反转两个,因此称两个硬币为一组)如果已经被反转一次了,如果再将其反转回来,就会使得这两次反转都无意义。
一般地说,就像同类费解的开关和点灯这种每个位置只有两种选择的问题一样,同一个位置,操作两次,都是无意义的。
在本题中,同一组硬币,我们最多只会翻转一次,拿题目给出的数据举例,我们的目的是把一号和六号的硬币反转成为o。
第一次,我们反转前两个。
第二次,我们的目的是将2号的o变成*,因为1和2这一组已经被反转一次,因此第二次我们只能选择2和3这一组。
第三次,目的是反转3号,但23这一组已被反转,因此只能反转34这一组。
第四次,同理,只能反转45这一组。
第五次,当反转56这一组时会发现,反转后的状态刚好就是我们所求的状态,这正是刚才解题思维中说到的有另一个需要反转的硬币(6号)来弥补之前的硬币(1号)反转所带来的副作用。
此时你会发现,从1号到6号,其包含的每一组我们都反转了一次,其间的每一个硬币我们都反转了两次,只有这样才能刚刚好使得两个不同之处变为相同。
原因:其间的硬币反转两次,相当于没反转;其包含的最开始和最后一个硬币,只反转了一次,因此改变的正反面。
因此,对于这题我们只需要找到每两个不同之处之间有多少个硬币,就可以推算出将这两个不同之处同时反转,需要消耗几步。
思想(2)
如果做题时没有发现每同时反转两个不同之处所消耗的步数等于其间的硬币数+1这条规律,那么大概率会用模拟法做,那无疑就使代码更加复杂。
一数曾说过下文类似的一句话:像这种看起来很简单,但是数据很大,暴力法做不了的;看起来像一般性题,但一般性方法做不了的,通常在题目中都有隐含的条件没有发现,一旦发现,此类题目将特别简单。
代码实现
首先,写出主函数和用来输入输出的函数。
int main(){char str1[120];gets_s(str1);char str2[120];gets_s(str2);int time =sta(str1, str2);printf("%d", time);return 0;}
随后对sta函数进行实现。
我们要统计的数目是每一组不同之处之间的硬币数,因此设置一个变量flag,当其为1时代表遇到了一组不同中的第一个不同,此时开始统计数目,当其为-1时,代表遇到了一组不同中的第二个不同,此时不统计数目。
int sta(char* str1, char* str2){int count = 0;int flag = -1;//是否开启统计while (*str1 != "\0"){if (*str1 != *str2){flag *= -1;}if (flag==1){count++;}str1++;str2++;}return count;}
可见,代码中并没有对字符串的任何操作,极大地减轻了代码量。
思想(3)
在实现sta函数时,并没有将flag的初始值设为0,而是设为了-1。
这样做可以在开启或关闭统计时直接让其乘以-1即可,不用再判断flag此时是哪一种情况。
亦或者在用模拟法的时候,表示正面,o 表示反面,那么你在反转时要先判断当前位置是 还是 o,但是如果用1表示正面,-1表示反面,你在反转的时候不需要判断,只需要让其乘以-1即可。
亦或者像费解的开关那样,用1表示开,0表示关,这样你在打开或关闭的时候,只要让其赋值为自身的非即可,不必额外判断当前的情况。
感谢您的阅读与耐心~ 如有错误烦请指出~ 谢谢
标签: 编程算法

直通315|一台近2万元,网红护眼灯是“神器”还是“智商税”?-世界即时看
2023-03-15

安徽省白湖农场 资讯
2023-03-15

砍6+4+3!关键三分2中2!火箭替补比史密斯准?胜绿军他功不可没 世界新消息
2023-03-15

环球报道:愚人节的开玩笑的句子有哪些_愚人节的开玩笑的句子
2023-03-14

全球要闻:网站一度瘫痪!硅谷银行门口,大批储户排队取款
2023-03-14

大洛谈比赛冲突就是想保护队友 大洛字母哥太强了引人不满但出阴招我不会袖手旁观(今日/头条)
2023-03-14

捷捷微电:光刻胶为公司的原材料 公司有两项专利是关于光刻胶的用法
2023-03-14

gpio是什么意思_GPIO接口是什么_焦点热讯
2023-03-14

全球快资讯丨唐代诗人王维简介50字_诗人王维简介
2023-03-14

全球看热讯:尴尬!两只基金想“续命”,有效表决加起来却不到10份……公司回应
2023-03-14
安徽省白湖农场 资讯
砍6+4+3!关键三分2中2!火箭替补比史密斯准?胜绿军他功不可没 世界新消息
环球报道:愚人节的开玩笑的句子有哪些_愚人节的开玩笑的句子
全球要闻:网站一度瘫痪!硅谷银行门口,大批储户排队取款
大洛谈比赛冲突就是想保护队友 大洛字母哥太强了引人不满但出阴招我不会袖手旁观(今日/头条)
捷捷微电:光刻胶为公司的原材料 公司有两项专利是关于光刻胶的用法
gpio是什么意思_GPIO接口是什么_焦点热讯
全球快资讯丨唐代诗人王维简介50字_诗人王维简介
全球看热讯:尴尬!两只基金想“续命”,有效表决加起来却不到10份……公司回应
3月13日基金净值:华夏经济转型股票最新净值2.027,涨0.8%
侨银股份:中标约6064.16万元珠海市斗门区垃圾中转站管护和垃圾压缩、转运服务-每日热门
澧县法院开展“利剑护‘澧’”集中执行行动|今日快看
京盛俱乐部:国内主要投资领域分析 环球头条
天天快看点丨千层蛋糕的做法家庭做法_千层蛋糕的做法
可城 可野 可电 哈弗二代大狗中部战区上市会-西安站圆满落幕 世界微速讯
最好的 RTX 4080 游戏笔记本电脑之一终于发售
全球微速讯:360皮肤怎么设置_360皮肤中心在
世界微资讯!朝鲜人民军军旗改制详细内容
当前热点-芝罘区保安协会助力植树护绿
全球观焦点:磨毛蕾丝质感怎么样_什么是磨毛蕾丝面料磨毛蕾丝面料有什么特点
国家统计局局长:去年中国经济增长率高于美国日本德国顶住了各_环球今热点
身边的大国工匠丨接续传承,让更多古文物重现神韵 全球热资讯
泡桐
ME与细胞能量紧张有关_每日快看
速看:量子科技概念股票_什么是量子科技
播报:一个失去梦想的咸鱼
java lang-当前热文
闰土股份:截至2023年3月10日,公司的股东人数为37,778 全球新视野
茅山后裔免费阅读_茅山后裔第六季


- 阳了应该怎么办-阳性感染者如何用药 03月11日00时河南漯河疫情数据
- 天天微动态丨健身时间段哪个最好_健身时间
- 16天确诊484例 疫情源头在哪 到底是什么情况-环球百事通
- 郑秀文这次真翻车了,染黄头发又穿一身咖,一脸焦黄还成小短腿
- 加油!国乒全主力出战WTT新加坡大满贯 世界热点
- 工频试验变压器 环球快消息
- 售9.49万元起/推2款车型 捷途X70 PLUS自强版上市
- 消息称小红书调整组织架构,押注直播电商
- 量值溯源和计量溯源_量值溯源是什么意思 速讯
- 天天观速讯丨每天吃枣的好处_吃枣的好处
- 财报速递:宁德时代2022年全年净利润307.29亿元,总体财务状况良好
- 两个膝盖突然酸痛怎么回事_两个膝盖上面一点酸痛怎么回事 全球动态
- 手机qq头像动态头像怎么弄_手机qq动态头像怎么弄|世界热点评
- 雅士利国际(01230):秦鹏辞任非执行董事|世界新要闻
- Mysteel日报:华南建筑钢材价格小幅趋弱 市场成交有所放量
- 全球热推荐:开国将帅还有几个在世_开国将军还有几个在世
- 星星张杰中文版在线听_星星张杰中文版 天天热消息
- 驻马店房地产新政出台-天天观察
- 铜价将持续波动 市场成交很难达到高位_今日热闻
- 过程装备与控制工程考研方向 学校新疆_焦点滚动
- 杨善竑代表:学校心理健康教育要做到等同于学科教育
- 贵州省贵定县发布大雾橙色预警
- 即时:12色环表图片配色标准_12色环表
- 全球今日报丨情窦初开图片高清(情窦初开)
- 比比谁更懂“观天”,广东举办气象行业职业技能竞赛
- 世界观速讯丨手机usb存储设备是什么
- 今日报丨德生科技:城乡就业服务已落地多个省市地区
- 去双下巴打什么针_去双下巴
- 罗志祥拒绝回应与周扬青复合传闻 称自己不知道
- 2023海口文庭居安居房选房报名入口 全球热资讯
- 国航白金卡-天天通讯
- 一年脱轨1000次!美国俄亥俄州再发生铁路事故 卡车撞上火车
- 于晓光个人资料_天天消息
- 佳电股份董秘回复: 公司与上海电科所联合开发的同步磁阻电机,正在样机试制阶段
- 最新消息:盐城市星晨化工有限公司
- 异步通信
- 全球新动态:梦幻西游网名大全逗比_梦幻西游网名大全
- 天天信息:毛纱
- 环球看点!大方县羊场镇:巾帼映红“半边天”
- 云翼雀_天天要闻
- 北京市医疗器械检验院_北京市医疗器械检验所官网
- 当前速讯:开花结果须根基扎实
- 2022年新年贺词
- 最新消息:大宗交易:力诺特玻成交2291.4万元,折价11.87%(03-07)
- 简讯:创意信息:感谢您的提醒和关注,公司严格按照相关规定披露相应人员的减持情况,烦请注意查询公司公告
- 【报资讯】商品条码系统
- 天天微动态丨奉百禄:3月7日国际黄金走势回调,行情分析操作建议
- 微信怎么找回支付密码不重置_微信怎么找回支付密码
- 天天关注:委员把新疆旅游广告打到了两会上是什么情况
- 世界今日报丨房屋损坏鉴定费用