呃呃啊啊今天睡醒之后脑子清楚多了,发现这题其实好简单,昨天搞那个输入输出一直没搞明白就有点慌了。。 首先排除两头的情况,交换中间任意两个相邻字符会造成影响的就是这两个字符加上附近的一共四个字符,其他地方的和不变,所以列举一下4个字符的所有形式: 1011 1101 1010 1100 0010 0100 0011 0101 中间两个字符一样的交换无效就不列了,然后发现上面的情况交换中间两个字符之后和都是不变的,所以说明交换中间的字符对结果没有影响,那只看两头的情况就可以了。 开头包括:100 010 101 011,四个交换前后分别是 10→11 11→10 11→21 12→11 结尾同理:010 001 110 101,四个交换前后分别是 11→1 1 →11 21→11 11→21 这样就可以只看开头和结尾的三个字符,优先交换和减少最小的几种就好了
点赞 评论

相关推荐

尊嘟假嘟点击就送:加v细说,问题很大
点赞 评论 收藏
分享
10-24 11:10
山西大学 Java
若梦难了:哥们,面试挂是很正常的。我大中厂终面挂,加起来快10次了,继续努力吧。
点赞 评论 收藏
分享
牛客网
牛客企业服务