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;   
  }
  }