整数からローマン

1710 ワード

この1つはローマの1つの整数に似ていますが、いくつかの違いがあります.
これらを後で参照できるようにするために、値のマップを作成することから始めましょう.ときに我々は、このマップを便利な、我々はすべての文字列にするときに見て参照することができます.ここではいくつかの文字列の例もあります.
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
}
そして、我々はそれに人々を持っています.