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字符串加法问题相关推荐

  1. 剑指Offer字符串转换成整数

    题目描述 将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数. 数值为0或者字符串不是一 ...

  2. Leetcode刷题笔记——剑指offer II (一)【整数、数组、字符串、链表】

    目录 整数 剑指 Offer II 001. 整数除法 剑指 Offer II 002. 二进制加法 剑指 Offer II 003. 前 n 个数字二进制中 1 的个数 剑指 Offer II 00 ...

  3. leetcode刷题笔记——剑指offer(二)[回溯、排序、位运算、数学、字符串]

    这里写目录标题 搜索与回溯 剑指 Offer 12. 矩阵中的路径 剑指 Offer 13. 机器人的运动范围 剑指 Offer 34. 二叉树中和为某一值的路径 剑指 Offer 36. 二叉搜索树 ...

  4. java 加法不用_【Java】 剑指offer(65) 不用加减乘除做加法

    本文参考自<剑指offer>一书,代码采用Java语言. 题目 写一个函数,求两个整数之和,要求在函数体内不得使用+.-.×.÷四则运算符号. 思路 对数字做运算,除了四则运算外,只剩下位 ...

  5. 【LeetCode 剑指offer刷题】字符串题6:67 把字符串转成整数

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 67 把字符串转成整数 题目描述 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数. 数值为0或者字符 ...

  6. 剑指Offer #02 替换空格(字符串处理)

    题目来源:牛客网-剑指Offer专题 题目地址:替换空格 题目描述 请实现一个函数,将一个字符串中的每个空格替换成"%20".例如,当字符串为We Are Happy.则经过替换之 ...

  7. 《剑指offer》-- 把数组排成最小的数、丑数、二进制中1的个数、表示数值的字符串、替换空格

    一.把数组排成最小的数: 1.题目: 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为 ...

  8. 剑指 Offer II 014. 字符串中的变位词

    剑指 Offer II 014. 字符串中的变位词 题目 示例 解答 题目来源为leetcode 题目 给定两个字符串s1和s2,写一个函数来判断s2是否包含s1的某个变位词. 换句话说,第一个字符串 ...

  9. java统计一个字符串中每个字符出现的次数_剑指offer算法题054:字符流中第一个不重复的字符...

    推荐阅读:宇宙条的工作总结:一年前还在面试找工作,一年后在面试找工作的学弟学妹们:第一次当面试官的经历分享小编在求职找找工作期间剑指offer上的算法题刷了很多遍,并且每道题小编当时都总结了一种最适合 ...

最新文章

  1. LaTeX设置单双栏方法 基于LaTex+VSCode+MAC
  2. Java 线程池中的线程复用是如何实现的?
  3. Windows Phone 8安装包中的文件和独立存储区中的文件访问
  4. C#LeetCode刷题之#448-找到所有数组中消失的数字(Find All Numbers Disappeared in an Array)
  5. hnu 暑期实训之A除以B
  6. 加拿大28历史开奖鸿蒙,本内特入选加拿大男篮集训名单,史上最水状元秀如今在何处?...
  7. 常用推荐算法(50页干货)
  8. 如何建语料库_语料库-如何建设语料?如何建设语料库 爱问知识人
  9. 如何将IE11降级到IE10
  10. SRCNN代码及注释
  11. matlab神经网络训练方法,matlab神经网络模型导出
  12. 第七周 项目2 - 建立链队算法库
  13. android PIN码解锁流程
  14. 【人工智能】机器学习:岭回归与LASSO回归(Ridge/LASSO Regression)
  15. excel导出图片---HSSFWorkbook--SXSSFWorkbook
  16. 消失的2000万辆小黄车去哪儿了?
  17. Docker学习笔记八:删除镜像构建私有Registry
  18. matplotlib的cmap
  19. 零基础入门金融风控-贷款违约预测-Task05——模型融合
  20. mysql导入txt_mysql怎么导入txt文件?

热门文章

  1. python复杂网络全局效率计算_python复杂网络库networkx:算法
  2. 双系统安装和ros安装踩坑
  3. Tr A 矩阵快速幂
  4. PHP 连接MySQL数据库
  5. 正态分布初始化 torch.nn.Embedding.weight()与torch.nn.init.normal()的验证对比
  6. 《南溪的目标检测学习笔记》——目标检测模型的设计笔记
  7. 【Less-9】基于SQLI的SQL时间盲注
  8. win10中配置Java完整教程
  9. [转]跨语言通信方案比较
  10. Java中使用try-with-resource优雅的关闭io流