2017美团点评Code
来源:互联网 发布:淘宝河南最大蛋糕 编辑:程序博客网 时间:2024/05/02 00:59
请设计一个算法能够完成两个用字符串存储的整数进行相加操作,对非法的输入则返回error
输入描述:
输入为一行,包含两个字符串,字符串的长度在[1,100]。
输出描述:
输出为一行。合法情况输出相加结果,非法情况输出error
示例1
输入
123 123
abd 123
输出
246
Error
其实后面处理len1,len2的大小时可以再写一个处理函数,交换传入的次序就行
比如,len1>=len2 传deal(arr,brr);
len1<len2 传deal(brr,arr);
package MeiTuan2017;
import java.util.*;
public class Main_4{
public static void main(String[] args){
Scanner in=new Scanner(System.in);
String str1=in.next();
String str2=in.next();
System.out.println(AddStr(str1,str2));
}
public static String AddStr(String str1,String str2){
int len1=str1.length();
int len2=str2.length();
int[] arr=new int[len1];
for(int i=0;i<len1;i++){
if(str1.charAt(i)<='9'&&'0'<=str1.charAt(i)) {
arr[i]=str1.charAt(i)-'0';
}else{
return "error";
}
}
int[] brr=new int[len2];
for(int i=0;i<len2;i++){
if(str2.charAt(i)<='9'&&'0'<=str2.charAt(i)) {
brr[i]=str2.charAt(i)-'0';
}else{
return "error";
}
}
String str="";
int p=len1;
int q=len2;
if(p>=q) {
StringBuffer sb=new StringBuffer();
int flag=0;
for(int i=q-1,j=p-1;i>=0&&j>=0;i--,j--){
int num=brr[i]+arr[j]+flag;
if(num>=10){
flag=1;
}else flag=0;
arr[j]=num%10;
sb.append(arr[j]);
}
for(int k=p-q-1;k>=0;k--){
int num=arr[k]+flag;
if(num>=10){
flag=1;
}else flag=0;
arr[k]=num%10;
sb.append(arr[k]);
}
if(flag==1) {
sb.append(1);
str= sb.reverse().toString();
}else {
str=sb.reverse().toString();
}
}
else if(p<q) {
int flag=0;
StringBuffer sb=new StringBuffer();
for(int i=p-1,j=q-1;i>=0&&j>=0;i--,j--){
int num=brr[j]+arr[i]+flag;
if(num>=10){
flag=1;
}else flag=0;
brr[j]=num%10;
sb.append(brr[j]);
}
for(int k=q-p-1;k>=0;k--){
int num=brr[k]+flag;
if(num>=10){
flag=1;
}else flag=0;
brr[k]=num%10;
sb.append(brr[k]);
}
if(flag==1) {
sb.append(1);
str= sb.reverse().toString();
}else {
str=sb.reverse().toString();
}
}
return str;
}
}
import java.util.*;
public class Main_4{
public static void main(String[] args){
Scanner in=new Scanner(System.in);
String str1=in.next();
String str2=in.next();
System.out.println(AddStr(str1,str2));
}
public static String AddStr(String str1,String str2){
int len1=str1.length();
int len2=str2.length();
int[] arr=new int[len1];
for(int i=0;i<len1;i++){
if(str1.charAt(i)<='9'&&'0'<=str1.charAt(i)) {
arr[i]=str1.charAt(i)-'0';
}else{
return "error";
}
}
int[] brr=new int[len2];
for(int i=0;i<len2;i++){
if(str2.charAt(i)<='9'&&'0'<=str2.charAt(i)) {
brr[i]=str2.charAt(i)-'0';
}else{
return "error";
}
}
String str="";
int p=len1;
int q=len2;
if(p>=q) {
StringBuffer sb=new StringBuffer();
int flag=0;
for(int i=q-1,j=p-1;i>=0&&j>=0;i--,j--){
int num=brr[i]+arr[j]+flag;
if(num>=10){
flag=1;
}else flag=0;
arr[j]=num%10;
sb.append(arr[j]);
}
for(int k=p-q-1;k>=0;k--){
int num=arr[k]+flag;
if(num>=10){
flag=1;
}else flag=0;
arr[k]=num%10;
sb.append(arr[k]);
}
if(flag==1) {
sb.append(1);
str= sb.reverse().toString();
}else {
str=sb.reverse().toString();
}
}
else if(p<q) {
int flag=0;
StringBuffer sb=new StringBuffer();
for(int i=p-1,j=q-1;i>=0&&j>=0;i--,j--){
int num=brr[j]+arr[i]+flag;
if(num>=10){
flag=1;
}else flag=0;
brr[j]=num%10;
sb.append(brr[j]);
}
for(int k=q-p-1;k>=0;k--){
int num=brr[k]+flag;
if(num>=10){
flag=1;
}else flag=0;
brr[k]=num%10;
sb.append(brr[k]);
}
if(flag==1) {
sb.append(1);
str= sb.reverse().toString();
}else {
str=sb.reverse().toString();
}
}
return str;
}
}
阅读全文
0 0
- 2017美团点评Code
- 美团点评2017年秋招笔试题
- 【2017美团点评】拼凑面额
- 美团点评编程题
- 美团点评面试有感
- 美团点评面经
- 美团-大众点评-春招面经
- 美团点评前端面试
- 美团点评面试题
- 美团点评笔试题
- 美团点评2017校园招聘编程题--取红包
- 2017美团点评校招前端面试题
- 美团点评2017秋招笔试真题A
- 美团点评 2017春招编程题
- 2017美团点评编程大赛资格赛 --- 音乐研究
- 美团点评2017年秋招笔试编程题
- 美团点评2017秋招笔试编程
- 嗯哼~2017美团点评前端面试(一年工作经验)
- 你司一个DBA负责多少研发的数据库管理呢
- JVM doc links
- 关于block访问外部变量的一些小注意点
- TCP和1448
- moveTaskToBack()方法
- 2017美团点评Code
- java.net.MalformedURLException: no protocol: 通支发送失败
- VMware Ubuntu安装详细过程
- 8月21日云栖精选夜读:Q1财报天猫交易额增速达49%_背后有哪些新技术支撑?
- 在windows中如何禁止vim生成临时文件
- 从navicat中导入sql文件过大:Got a packet bigger than 'max_allowed_packet' bytes
- Robot Framework自动化测试(一)---第一个脚本
- 解决dubbo问题:forbid consumer
- hadoop默认端口