文字列の連結。そのトピックはまだ上です。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 }。