云合智网 面试算法题 两个字符串相乘,例如“12345“ * “54321“,字符串不能直接转换为整型
题目
两个字符串相乘,例如"12345" * “54321”,字符串不能直接转换为整型
public class StringMultiplication {public static void main(String[] args) {StringMultiplication s = new StringMultiplication();String s1 = "123";String s2 = "456";System.out.println(s.method(s1, s2));}public long method(String s1, String s2) {List<Integer> l1 = new ArrayList<>();List<Integer> l2 = new ArrayList<>();//存放每轮循环得到的值 该集合中元素相加 即为结果List<Long> l3 = new ArrayList<>();//字符串s1拆成数字存入l1for (int i = s1.length() - 1; i >= 0; i--) {int x = Integer.parseInt(s1.charAt(i) + "");l1.add(x);}//字符串s2拆成数字存入l2for (int i = s2.length() - 1; i >= 0; i--) {int x = Integer.parseInt(s2.charAt(i) + "");l2.add(x);}for (int i = 0; i < l1.size(); i++) {//用来 记录 两数相乘 之后需要进位的值 例如 6*7=42 则4需要加到前一位int n = 0;String str = "";for (int j = 0; j < l2.size(); j++) {int num;num = n + l1.get(i) * l2.get(j);n = num / 10;str += num % 10 + "";}//内层循环结束 发现n!=0时 需要加到str中if (n != 0) {str += n;}String s = "";//str的倒序 赋值给s 即为每次外层循环得到的结果for (int j = str.length() - 1; j >= 0; j--) {s += str.charAt(j);}//当外层循环的轮数>0时 结果末尾需要加0for (int j = 0; j < i; j++) {s += "0";}//System.out.println(s);l3.add(Long.parseLong(s));}long sum = 0;for (int i = 0; i < l3.size(); i++) {sum += l3.get(i);}return sum;}
}
云合智网 面试算法题 两个字符串相乘,例如“12345“ * “54321“,字符串不能直接转换为整型相关推荐
- Java常见的面试算法题:实现两个线程交替打印1到100的数
Java常见的面试算法题:实现两个线程交替打印1到100的数 思路: 这是涉及到多个线程打印的问题,一定会用到锁的(synchronized),故这就是一个多线程打印的典型案例. 代码实现: pack ...
- 互联网公司最常见的面试算法题大集合!
转载于 新智元 来源:Github 编辑:元子 [导读]LeetCode是一个美国的在线编程网站,收集了各个大厂的笔试面试题,对找工作的毕业生和开发者来说,非常有价值.很多求职者都会在Leet ...
- 常考面试算法题类型总结(来自知乎)
作者:牛客网 链接:https://www.zhihu.com/question/24964987/answer/200681301 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转 ...
- 常见的面试算法题:创建几个线程按顺序打印数字或者字母(多线程编程)(套用该模板即可)
常见的面试算法题:创建几个线程按顺序打印数字或者字母(多线程编程)(套用该模板即可) 比较典型的题目,如下有: 题目一: 1.启动3个线程打印递增的数字, 线程1先打印1,2,3,4,5, 然后是线程 ...
- 力扣高频算法php_互联网公司最常见的面试算法题有哪些?
很多时候,你即使提前复习了这些最常见的面试算法题,你依旧无法通过算法面试! 为什么?你在提前准备复习的时候,在网上找了半天相应题目的分析文章,但你看了就是不懂. 你在面试的时候,卡壳了,一时间忘了怎么 ...
- 牛客网面试高频题top100(11~20)
** 牛客网面试高频题top100(11~20 java实现) ** 11.跳台阶 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个 n 级的台阶总共有多少种跳法(先后次序不同算不同的结 ...
- 牛客网面试高频题top100(1~10)
*牛客网面试高频题top100(1~10 java实现) 1.反转链表 描述: 给定一个单链表的头结点pHead(该头节点是有值的,比如在下图,它的val是1),长度为n,反转该链表后,返回新链表的表 ...
- C++经典面试算法题
#include <assert.h> #include <string.h> #include <stack>// // C++ 经典面试算法题 [7/28/20 ...
- 【笔试面试题】腾讯2013实习生面试算法题及参考答案
总结了一下自己遇到的以及同学遇到的面试算法题,是技术二面. 有几道题给出了参考答案,还有几道没有好的思路.路过的大侠如果有好的思路请留个言交流下呗~ 1.八数码问题:3*3的格子,有1~8个数,空了一 ...
最新文章
- 查看和设置MySQL数据库字符集(转)
- 自定义导航栏,实现缓存,更新缓存,提高效率
- 格式化输出字符串变量
- activemq 连接_ActiveMQ网络连接器
- 坦克大战 Java版
- php json获取get请求,PHP简单的Curl的Get请求和Curl的Post请求和file_get_contents的Get请求获取接口JSON数据...
- 存储过程不可以封装_【小知识】功率半导体器件之10功率器件的封装可靠性
- matlab绘制球面点,我需要在MATLAB的笛卡尔坐标中绘制球面方程的帮助
- SpringBoot和监控管理
- php 怎么查看原生方法源码_你的2020搜索账单地址入口 你的2020搜索账单怎么查看查看方法...
- fiddler之数据统计(statistics)
- web开发中特殊字符的对应值与转义字符
- OpenGL基础7:彩色三角形
- 工作 3 年就是高级,这就是差距啊
- 操作系统课程设计----模拟文件管理系统(c语言)
- c++ 循环控制语句 while语句 do...while语句 for语句 for循环
- Openwrt/Lede软路由设置为旁路由模式
- 国家互联网信息办公室公布《互联网新闻信息服务单位内容管理从业人员管理办法》【软件网每日新闻播报│第10-31期】
- mysql 数据库主从
- DNS域名解析和正向解析