[プログラマ]数字文字列とアルファベット語
8497 ワード
function solution(s) {
let num = {zero : "0", one: 1, two: 2, three: 3, four: 4, five: 5,
six: 6, seven: 7, eight: 8, nine: 9}
let word = ""
let alpahbet = ""
for(let i = 0; i < s.length; i++) {
if(Number(s[i])) {
word += s[i]
continue;
} else if(String(s[i])) {
alpahbet += s[i]
if(alpahbet === "0") {
word += "0"
alpahbet = ""
}
}
if(num[alpahbet]) {
word += num[alpahbet]
alpahbet = ""
}
}
return Number(word)
}
指定された文字列には、数値と文字で表される数値があります.文字からなる数字はオブジェクトからなり、繰り返し文のループ中に数字であれば
word
変数に直接割り当てられ、文字であればalpahbet
変数に割り当てられます.文字列がすべて整列されている場合、
if(num[alpahber])
オブジェクトは数値として受け入れられ、条件文は参照条件としてオブジェクトにproperty値を割り当てます.この問題において、最大の鍵は
0
である.0は
if(num[alpahber])
でfalse条件と判断され、また文字列"0"
が宣言され、1000であれば要素が「000」に連続的に蓄積されるため、10万割り当ての問題でalpahbet = ""
変数を空の文字列に変更する必要がある.模範解答
function solution(s) {
let numbers = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"];
var answer = s;
for(let i=0; i< numbers.length; i++) {
let arr = answer.split(numbers[i]);
answer = arr.join(i);
}
return Number(answer);
}
Reference
この問題について([プログラマ]数字文字列とアルファベット語), 我々は、より多くの情報をここで見つけました
https://velog.io/@milkyway/프로그래머스-숫자-문자열과-영단어
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
function solution(s) {
let numbers = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"];
var answer = s;
for(let i=0; i< numbers.length; i++) {
let arr = answer.split(numbers[i]);
answer = arr.join(i);
}
return Number(answer);
}
Reference
この問題について([プログラマ]数字文字列とアルファベット語), 我々は、より多くの情報をここで見つけました https://velog.io/@milkyway/프로그래머스-숫자-문자열과-영단어テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol