整数からローマン
1710 ワード
この1つはローマの1つの整数に似ていますが、いくつかの違いがあります.
これらを後で参照できるようにするために、値のマップを作成することから始めましょう.ときに我々は、このマップを便利な、我々はすべての文字列にするときに見て参照することができます.ここではいくつかの文字列の例もあります.
XIまたは11では、電流はXであり、次はIである.
現在の文字が次より大きい場合、通常は結果に追加できます.
XIの場合は、10を追加し、次に、1と11を得ることができます.
現在の文字が次のものより小さい場合は、XIXの場合と同様に、次の要素を現在の要素で減算します.
だから、想像してください.Xを見て、Xは次のようになります.Xがより大きいとき、私はXを加えます.Xを加えます、そして、私たちは、IとXを見ます.そして、現在のものが次のものより大きくないので、我々は次のマイナスの値を現在または10 - 1に加えます.
これは19時までです.
この場合、私たちは、新しいif文の下ですべてのif文を包みます.そして、次の声明がある限り、これらのif文を走らせます.
これらを後で参照できるようにするために、値のマップを作成することから始めましょう.ときに我々は、このマップを便利な、我々はすべての文字列にするときに見て参照することができます.ここではいくつかの文字列の例もあります.
function romanToInteger(string) {
let map = {
I: 1,
V: 5,
X: 10,
L: 50,
C: 100,
D: 500,
X: 1000,
}
次に、文字列をループし、各文字を現在または次のいずれかとして割り当てる.XIまたは11では、電流はXであり、次はIである.
現在の文字が次より大きい場合、通常は結果に追加できます.
XIの場合は、10を追加し、次に、1と11を得ることができます.
現在の文字が次のものより小さい場合は、XIXの場合と同様に、次の要素を現在の要素で減算します.
だから、想像してください.Xを見て、Xは次のようになります.Xがより大きいとき、私はXを加えます.Xを加えます、そして、私たちは、IとXを見ます.そして、現在のものが次のものより大きくないので、我々は次のマイナスの値を現在または10 - 1に加えます.
これは19時までです.
function romanToInteger(string) {
let map = {
I: 1,
V: 5,
X: 10,
L: 50,
C: 100,
D: 500,
X: 1000,
}
let result = 0
for (let i = 0; i < string.length; i++) {
let current = map[string.charAt(i)]
let next = map[string.charAt(i+1)]
if (current > next) {
result += current
} else {
result += next - current
}
}
}
これは最後のケースを除いてほとんどの場合を扱うべきです.この場合、私たちは、新しいif文の下ですべてのif文を包みます.そして、次の声明がある限り、これらのif文を走らせます.
function romanToInteger(string) {
let map = {
I: 1,
V: 5,
X: 10,
L: 50,
C: 100,
D: 500,
X: 1000,
}
let result = 0
for (let i = 0; i < string.length; i++) {
let current = map[string.charAt(i)]
let next = map[string.charAt(i+1)]
if (next) {
if (current > next) {
result += current
} else {
result += next - current
}
}
} else {
result += current
}
return result
}
そして、我々はそれに人々を持っています.Reference
この問題について(整数からローマン), 我々は、より多くの情報をここで見つけました https://dev.to/seth_king/roman-to-integer-4a3oテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol