阿里笔试 8-28 字符串交换
阿里笔试
题目一:
对于一个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 字符串交换相关推荐
- 阿里云服务器设置swap交换分区
阿里云服务器设置swap交换分区 文章目录 阿里云服务器设置swap交换分区 前言 一.设置交换分区swap 二.设置开机自动挂载 前言 Swap分区,即交换区,系统在物理内存(这里应该是运行内存)不 ...
- 博主在阿里笔试中拿了0分,竟是因为分不清楚 Java 输入类 nextLine 与 next 两个方法的区别
前言 以前做算法题,都是实现一个方法,需要的参数会在方法参数中直接给出,而且需要的返回值直接在方法中 return 就好了.但是,这次阿里笔试,让博主遭遇百万点暴击,需要的参数居然要到输入流中读取,而 ...
- LeetCode简单题之仅执行一次字符串交换能否使两个字符串相等
题目 给你长度相等的两个字符串 s1 和 s2 .一次 字符串交换 操作的步骤如下:选出某个字符串中的两个下标(不必不同),并交换这两个下标所对应的字符. 如果对 其中一个字符串 执行 最多一次字符串 ...
- LeetCode 1790. 仅执行一次字符串交换能否使两个字符串相等
文章目录 1. 题目 2. 解题 1. 题目 给你长度相等的两个字符串 s1 和 s2 . 一次 字符串交换 操作的步骤如下:选出某个字符串中的两个下标(不必不同),并交换这两个下标所对应的字符. 如 ...
- 阿里笔试之Java分词统计
阿里笔试 原来计划的是昨天下午7:00到8:00进行的,结果刚看完乔司南敏捷的房子,回去之后和鹏伟 一起去吃火锅,所以只好把时间推迟到8:30,结构再次推迟到今天早晨9:00到10:00. 题目是这样 ...
- 20200415阿里笔试 Python3
20200415阿里笔试 Python3 第一题 题目描述 示例输入 示例输出 题解: Python3 代码 第二题 题目描述 示例输入 示例输出 题解: Python3 代码 第一题 题目描述 n个 ...
- 23届秋招阿里笔试算法题
import java.util.Scanner;//23届秋招阿里笔试第一题:二进制求解(100%) public class Main1 {public static void f1(int n) ...
- 【阿里笔试+蘑菇街面试】向来缘浅,奈何情深
2015-08-21 今晚阿里笔试,我报的业务型产品经理,7点开始,15分钟的不定性选择题,题目有关互联网.产品经理基本知识和逻辑推理题(类似行测),一共10题,时间绰绰有余,个别题可能有点纠结.然后 ...
- 黑白子交换c语言思路,C趣味程序百例(28)黑白子交换
87.黑白子交换 有三个白子和三个黑子如下图布置: ○ ○ ○ . ● ● ● 游戏的目的是用最少的步数将上图中白子和黑子的位置进行交换: ● ● ● . ○ ○ ○ 游戏的规则是:(1)一次只能移动 ...
最新文章
- 人工神经网络发展历史及算法应用综述
- react - antd (Table 与 Cascader 平级数据转树形实操)
- Gradle在IDEA中创建web项目
- menu什么意思中文意思_英文alone、lonely、lonesome 中文意思跟用法差别
- Highcharts双饼图使用实例
- mesos INSTALL
- 怎样让git不用每次输入密码_不用输入WIFI密码 “一碰连”就能上网
- Java基本数据类型总结(转)
- Qt 定制字体选择 QFontComBobox
- minecraftjava版光追_《我的世界》加入光追,“马赛克”游戏真有必要这样做?...
- 办公用计算机的配置,办公电脑用什么配置的好,2018办公电脑配置推荐
- 管理多个java版本,OS X中使用jEnv管理多个Java版本
- python中的折线图、散点图、直方图绘制和图像参数设置
- 考研英语(五)——定语从句
- python语言编程函数_Python编程语言的函数功能
- vue中时间戳转换为日期格式的方法封装
- 国内的程序员(软件工程师)这一职业,是吃青春饭的吗?
- JAVA房产置购门户网站计算机毕业设计Mybatis+系统+数据库+调试部署
- 移动前端不得不了解的html5 head 头标签
- 陆金所服务器维护,陆金所如何在线更换金融核心场景的 Oracle 数据库
热门文章
- 网红直播的收入真的有那么高吗
- 杂文:个人自述——电子之旅
- 计算机教师信息化大赛作品,全国“xx杯”计算机专业类说课大赛优秀作品:信息化色彩搭配训练说课课件...
- 平安人寿推出“财富健康双守护 尊享生活有平安”主题活动
- 如何把企业数据迁移到阿里云服务器中
- Second season eleventh episode,the lesbian wedding!!!
- Oculus VR SDK实现 -主要结构体及Api接口设计
- 解析PDF文件以及解决编码问题
- 成为一名厉害的程序员,需要哪些必备知识
- 安卓studio如何C语言,android studio 运行c语言程序