[LeetCode] 415の追加文字列

文字列の連結。そのトピックはまだ上です。43影の問題例、

"13" + "79" = "92"

この問題は、研究は、文字列の操作に関連して、任意のアルゴリズムを持っていません。JavaとJSは、いくつかの違いがある少しの練習します。StringBuilderの間の関係のため、それぞれの内側の数字とすべての結果は、Javaで追記することができるように、JS代わりのStringBuilder関数の配列があります。しかし、二つの言語のアイデアを実現するために同じです。

時間O(N)

スペースO(n)は、

Java実装

1  クラスソリューション{
 2      パブリック文字列addStrings(文字列NUM1、文字列NUM2){
 3          int型 I = num1.length() - 1 ;
4          int型 J = num2.length() - 1 ;
5          int型のキャリー= 0 6          StringBuilderのSB = 新規のStringBuilder();
7          一方(I> = 0 || J> = 0 ||キャリー== 1 ){
 8              INT A = I> = 0?num1.charAt(i--) - '0':0 ;
9              int型 B = J> = 0?num2.charAt(j--) - '0':0 ;
10              INTの合計= A + B + キャリー。
11              sb.append(合計10% )。
12              キャリー=和/ 10 13          }
 14          リターン。sb.reverse()のtoString();
15      }
 16 }

 

JavaScript実装

1  / * *
 2  * @param {文字列} NUM1
 3  * @param {文字列} NUM2
 4  * @return {文字列}
 5   * / 
6  のvar addStrings = 関数(NUM1、NUM2){
 7      iはnum1.length =せ- 1 ;
8      J = num2.lengthてみましょう- 1 9      LETキャリー= 0 10の      LETのRES = [];
11      一方(I> = 0 || J> = 0 ||キャリー== 1 ){
 12          LETのdigit1 = I <0?0:num1.charAt(I) - '0' ;
13         J <0 = digit2てみましょうか?0:num2.charAt(J) - '0' ;
図14は、          digitsSum = digit1 + digit2 +せキャリー。
15          res.push(digitsSumの10% )。
16          キャリー= Math.floor(digitsSum / 10 )。
17          i-- ;
18          j-- 19      }
 20      リターン res.reverse()( ''加わります。);
21 }。

 

おすすめ

転載: www.cnblogs.com/aaronliu1991/p/12571976.html