세고 1️⃣2️⃣3️⃣이라고 말하세요...
4206 단어 algorithmsjavascript
count and say
로 변환하는 프로그램을 작성하도록 요청합니다. 이것은 1부터 시작하여 연속적인 중복 정수의 개수와 숫자 자체인 다음 숫자를 찾아야 함을 의미합니다. 그래서 우리는 다음 숫자를 찾기 위해 마지막 숫자를 사용합니다. 좀 더 시각적으로 설명하겠습니다.4가
1211
이므로 5는 111221
이므로 숫자로 다음을 수행합니다.1
-> 11(하나) 2
-> 12(하나 둘) 지금까지: 111211
-> 21(2개) 최종: 111221암호
알고리즘을 살펴보면 다음과 같습니다.
let countAndSay = (n) => {
let result = '1'
for(let i = 1; i < n ; i++){
let consecutiveDigits = ''
let substringResult = ''
for(let j = 0; j < result.length; j++){
consecutiveDigits += result[j]
if(result[j] !== result[j+1]){
substringResult += `${sameDigits.length}${sameDigits[0]}`
consecutiveDigits = ''
}
}
result = substringResult
}
return result
};
1부터 카운트를 문자열로 시작한 다음(
let result = '1'
), 연속 숫자를 추적할 빈 문자열을 설정하고( let consecutiveDigits = ''
) 중복이 있으면 추가합니다( consecutiveDigits += result[j]
).다음 숫자가 다르면(
if(result[j] !== result[j+1])
) 현재 중복된 숫자를 계산하고( consecutiveDigits.length
) 현재 숫자를 추가합니다( consecutiveDigits[0]
).두 값 모두 내부 루프(
substringResult
)에서 부분 문자열로 추가되고 외부 루프에서 result
로 설정됩니다.내부 루프 반복이 완료된 후 결과 변수를 수집한 하위 문자열로 설정합니다.
외부 루프는
count and say
로 변환할 원하는 숫자에 도달할 때까지 계속되고 이전 숫자를 저장합니다. 내부 루프가 진행되는 동안 이전count and say
번호를 분석하여 다음 번호를 생성합니다.또는 에 오신 것을 환영합니다!
Reference
이 문제에 관하여(세고 1️⃣2️⃣3️⃣이라고 말하세요...), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/santispavajeau/count-and-say-1-2-3-4dko텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)