剑指Offer字符串加法问题
1、题目描述
输入两个字符串a和b,字符串内容为二进制数字,求两个字符串相加的结果,加法计算方法以二进制方式计算,并返回对应的字符串结果。要求程序尽可能的高效。示例如下:
/** * @param a = "1101" * @param b = "1100" * @return "11001" */
输入描述:
输入两个字符串,如"1101", “1100”
输出描述:
“11001”
2、题解
这种方法的思路是将二进制转换成十进制数之后相加,再转换回二进制数,用到了Integer的toBinaryString方法。
import java.util.*;
public class Main
{public static void main(String [] args){// 监听键盘输入Scanner sc=new Scanner(System.in);while(sc.hasNext()){String str1=sc.next();String str2=sc.next();int r = getResult(str1)+getResult(str2);String result=Integer.toBinaryString(r);System.out.println(result); }}public static int getResult(String str){int sum=0;for(int i=0;i<str.length();i++){char s=str.charAt(i);String ss=""+s;int num=Integer.parseInt(ss);sum+=num*Math.pow(2,str.length()-i-1); //根据二进制转十进制的公式 }return sum;}
}
还有一种更简洁的写法:其中用到了Integer的valueOf方法,第一个参数代表进制数,第二个代表几进制,返回结果是十进制数。
import java.util.*;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);String str1 = scanner.next();String str2 = scanner.next();System.out.println(Integer.toBinaryString(Integer.valueOf(str1, 2) + Integer.valueOf(str2, 2)));}
}
还有更复杂的解法就不写了,写了也看不懂。
剑指Offer字符串加法问题相关推荐
- 剑指Offer字符串转换成整数
题目描述 将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数. 数值为0或者字符串不是一 ...
- Leetcode刷题笔记——剑指offer II (一)【整数、数组、字符串、链表】
目录 整数 剑指 Offer II 001. 整数除法 剑指 Offer II 002. 二进制加法 剑指 Offer II 003. 前 n 个数字二进制中 1 的个数 剑指 Offer II 00 ...
- leetcode刷题笔记——剑指offer(二)[回溯、排序、位运算、数学、字符串]
这里写目录标题 搜索与回溯 剑指 Offer 12. 矩阵中的路径 剑指 Offer 13. 机器人的运动范围 剑指 Offer 34. 二叉树中和为某一值的路径 剑指 Offer 36. 二叉搜索树 ...
- java 加法不用_【Java】 剑指offer(65) 不用加减乘除做加法
本文参考自<剑指offer>一书,代码采用Java语言. 题目 写一个函数,求两个整数之和,要求在函数体内不得使用+.-.×.÷四则运算符号. 思路 对数字做运算,除了四则运算外,只剩下位 ...
- 【LeetCode 剑指offer刷题】字符串题6:67 把字符串转成整数
[LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 67 把字符串转成整数 题目描述 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数. 数值为0或者字符 ...
- 剑指Offer #02 替换空格(字符串处理)
题目来源:牛客网-剑指Offer专题 题目地址:替换空格 题目描述 请实现一个函数,将一个字符串中的每个空格替换成"%20".例如,当字符串为We Are Happy.则经过替换之 ...
- 《剑指offer》-- 把数组排成最小的数、丑数、二进制中1的个数、表示数值的字符串、替换空格
一.把数组排成最小的数: 1.题目: 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为 ...
- 剑指 Offer II 014. 字符串中的变位词
剑指 Offer II 014. 字符串中的变位词 题目 示例 解答 题目来源为leetcode 题目 给定两个字符串s1和s2,写一个函数来判断s2是否包含s1的某个变位词. 换句话说,第一个字符串 ...
- java统计一个字符串中每个字符出现的次数_剑指offer算法题054:字符流中第一个不重复的字符...
推荐阅读:宇宙条的工作总结:一年前还在面试找工作,一年后在面试找工作的学弟学妹们:第一次当面试官的经历分享小编在求职找找工作期间剑指offer上的算法题刷了很多遍,并且每道题小编当时都总结了一种最适合 ...
最新文章
- LaTeX设置单双栏方法 基于LaTex+VSCode+MAC
- Java 线程池中的线程复用是如何实现的?
- Windows Phone 8安装包中的文件和独立存储区中的文件访问
- C#LeetCode刷题之#448-找到所有数组中消失的数字(Find All Numbers Disappeared in an Array)
- hnu 暑期实训之A除以B
- 加拿大28历史开奖鸿蒙,本内特入选加拿大男篮集训名单,史上最水状元秀如今在何处?...
- 常用推荐算法(50页干货)
- 如何建语料库_语料库-如何建设语料?如何建设语料库 爱问知识人
- 如何将IE11降级到IE10
- SRCNN代码及注释
- matlab神经网络训练方法,matlab神经网络模型导出
- 第七周 项目2 - 建立链队算法库
- android PIN码解锁流程
- 【人工智能】机器学习:岭回归与LASSO回归(Ridge/LASSO Regression)
- excel导出图片---HSSFWorkbook--SXSSFWorkbook
- 消失的2000万辆小黄车去哪儿了?
- Docker学习笔记八:删除镜像构建私有Registry
- matplotlib的cmap
- 零基础入门金融风控-贷款违约预测-Task05——模型融合
- mysql导入txt_mysql怎么导入txt文件?
热门文章
- python复杂网络全局效率计算_python复杂网络库networkx:算法
- 双系统安装和ros安装踩坑
- Tr A 矩阵快速幂
- PHP 连接MySQL数据库
- 正态分布初始化 torch.nn.Embedding.weight()与torch.nn.init.normal()的验证对比
- 《南溪的目标检测学习笔记》——目标检测模型的设计笔记
- 【Less-9】基于SQLI的SQL时间盲注
- win10中配置Java完整教程
- [转]跨语言通信方案比较
- Java中使用try-with-resource优雅的关闭io流