阿里笔试

题目一:

对于一个01字符串,每次只能任意交换两个元素,或者把0变成1,或者把1变成0,或者反转整个字符串。那么从A串变成B串至少需要多少步。
例子,1111000变成0010011至少需要3步。

思路 分别计算不翻转时,A为0,B为1的位数a,A为1,B为0的位数b,以及翻转之后A为0,B为1的位数c,A为1,B为0的位数d。最后的结果其实就是min(max(a,b),max(c,d)+1)。举个例子:max(a,b)=a,这意味着只要进行b次的交换,和a-b次的变换即可。反转之后一样的,但是需要加上反转的1。

import java.util.Scanner;public class Main{public static void main(String[] args) {Scanner sc = new Scanner(System.in);//输入String str=sc.nextLine();//获取字符串长度int m=Integer.valueOf(str);String str1=sc.nextLine();//获取第一个字符串String str2=sc.nextLine();//获取第二个字符串int a=0,b=0,c=0,d=0;for(int i=0;i<m;i++){//第一个字符串为1  第二个字符串为0的个数if(str1.charAt(i)=='1'&&str2.charAt(i)=='0'){a++;}//第一个字符串为0  第二个字符串为1的个数if(str1.charAt(i)=='0'&&str2.charAt(i)=='1'){b++;}//反转 第一个字符串为1  第二个字符串为0的个数if(str1.charAt(i)=='1'&&str2.charAt(m-i-1)=='0'){c++;}//反转 第一个字符串为0  第二个字符串为1的个数if(str1.charAt(i)=='0'&&str2.charAt(m-1-i)=='1'){d++;}}System.out.println( Math.min(Math.max(a,b),Math.max(c,d)+1));}
}

阿里笔试 8-28 字符串交换相关推荐

  1. 阿里云服务器设置swap交换分区

    阿里云服务器设置swap交换分区 文章目录 阿里云服务器设置swap交换分区 前言 一.设置交换分区swap 二.设置开机自动挂载 前言 Swap分区,即交换区,系统在物理内存(这里应该是运行内存)不 ...

  2. 博主在阿里笔试中拿了0分,竟是因为分不清楚 Java 输入类 nextLine 与 next 两个方法的区别

    前言 以前做算法题,都是实现一个方法,需要的参数会在方法参数中直接给出,而且需要的返回值直接在方法中 return 就好了.但是,这次阿里笔试,让博主遭遇百万点暴击,需要的参数居然要到输入流中读取,而 ...

  3. LeetCode简单题之仅执行一次字符串交换能否使两个字符串相等

    题目 给你长度相等的两个字符串 s1 和 s2 .一次 字符串交换 操作的步骤如下:选出某个字符串中的两个下标(不必不同),并交换这两个下标所对应的字符. 如果对 其中一个字符串 执行 最多一次字符串 ...

  4. LeetCode 1790. 仅执行一次字符串交换能否使两个字符串相等

    文章目录 1. 题目 2. 解题 1. 题目 给你长度相等的两个字符串 s1 和 s2 . 一次 字符串交换 操作的步骤如下:选出某个字符串中的两个下标(不必不同),并交换这两个下标所对应的字符. 如 ...

  5. 阿里笔试之Java分词统计

    阿里笔试 原来计划的是昨天下午7:00到8:00进行的,结果刚看完乔司南敏捷的房子,回去之后和鹏伟 一起去吃火锅,所以只好把时间推迟到8:30,结构再次推迟到今天早晨9:00到10:00. 题目是这样 ...

  6. 20200415阿里笔试 Python3

    20200415阿里笔试 Python3 第一题 题目描述 示例输入 示例输出 题解: Python3 代码 第二题 题目描述 示例输入 示例输出 题解: Python3 代码 第一题 题目描述 n个 ...

  7. 23届秋招阿里笔试算法题

    import java.util.Scanner;//23届秋招阿里笔试第一题:二进制求解(100%) public class Main1 {public static void f1(int n) ...

  8. 【阿里笔试+蘑菇街面试】向来缘浅,奈何情深

    2015-08-21 今晚阿里笔试,我报的业务型产品经理,7点开始,15分钟的不定性选择题,题目有关互联网.产品经理基本知识和逻辑推理题(类似行测),一共10题,时间绰绰有余,个别题可能有点纠结.然后 ...

  9. 黑白子交换c语言思路,C趣味程序百例(28)黑白子交换

    87.黑白子交换 有三个白子和三个黑子如下图布置: ○ ○ ○ . ● ● ● 游戏的目的是用最少的步数将上图中白子和黑子的位置进行交换: ● ● ● . ○ ○ ○ 游戏的规则是:(1)一次只能移动 ...

最新文章

  1. 人工神经网络发展历史及算法应用综述
  2. react - antd (Table 与 Cascader 平级数据转树形实操)
  3. Gradle在IDEA中创建web项目
  4. menu什么意思中文意思_英文alone、lonely、lonesome 中文意思跟用法差别
  5. Highcharts双饼图使用实例
  6. mesos INSTALL
  7. 怎样让git不用每次输入密码_不用输入WIFI密码 “一碰连”就能上网
  8. Java基本数据类型总结(转)
  9. Qt 定制字体选择 QFontComBobox
  10. minecraftjava版光追_《我的世界》加入光追,“马赛克”游戏真有必要这样做?...
  11. 办公用计算机的配置,办公电脑用什么配置的好,2018办公电脑配置推荐
  12. 管理多个java版本,OS X中使用jEnv管理多个Java版本
  13. python中的折线图、散点图、直方图绘制和图像参数设置
  14. 考研英语(五)——定语从句
  15. python语言编程函数_Python编程语言的函数功能
  16. vue中时间戳转换为日期格式的方法封装
  17. 国内的程序员(软件工程师)这一职业,是吃青春饭的吗?
  18. JAVA房产置购门户网站计算机毕业设计Mybatis+系统+数据库+调试部署
  19. 移动前端不得不了解的html5 head 头标签
  20. 陆金所服务器维护,陆金所如何在线更换金融核心场景的 Oracle 数据库

热门文章

  1. 网红直播的收入真的有那么高吗
  2. 杂文:个人自述——电子之旅
  3. 计算机教师信息化大赛作品,全国“xx杯”计算机专业类说课大赛优秀作品:信息化色彩搭配训练说课课件...
  4. 平安人寿推出“财富健康双守护 尊享生活有平安”主题活动
  5. 如何把企业数据迁移到阿里云服务器中
  6. Second season eleventh episode,the lesbian wedding!!!
  7. Oculus VR SDK实现 -主要结构体及Api接口设计
  8. 解析PDF文件以及解决编码问题
  9. 成为一名厉害的程序员,需要哪些必备知识
  10. 安卓studio如何C语言,android studio 运行c语言程序