문자열 압축
6820 단어 javascriptleetcode
빈 문자열 s로 시작합니다. chars의 각 연속 반복 문자 그룹에 대해:
1) 그룹의 길이가 1이면 s에 문자를 추가합니다.
2) 그렇지 않으면 문자 뒤에 그룹 길이를 추가합니다.
압축된 문자열 s는 별도로 반환되지 않아야 하며 대신 입력 문자 배열 chars에 저장됩니다. 10 이상의 그룹 길이는 chars에서 여러 문자로 분할됩니다.
입력 배열 수정을 완료한 후 배열의 새 길이를 반환합니다. [동일한 배열을 수정해야 함을 의미]
일정한 추가 공간만 사용하는 알고리즘을 작성해야 합니다.
예 1:
입력: chars = ["a","a","b","b","c","c","c"]
출력: 6을 반환하고 입력 배열의 처음 6자는 다음과 같아야 합니다. ["a","2","b","2","c","3"]
설명: 그룹은 "aa", "bb"및 "ccc"입니다. 이것은 "a2b2c3"로 압축됩니다.
var compress = function (char) {
let index = 0;
let start = 0;
let end = 0;
let count = 0;
while (char.length > end) {
while (char[start] === char[end]) {
count++;
end++;
}
char[index] = char[start];
index++;
if (count > 1) {
let toStr = count?.toString();
for (let i = 0; i < toStr?.length; i++) {
char[index] = toStr[i];
index++;
}
}
count = 0;
start = end;
}
return index;
};
console.log(compress(["a", "a", "b", "b", "c", "c", "c"]));
console.log(compress(["a"]));
console.log(
compress(["a", "b", "b", "b", "b", "b", "b", "b", "b", "b", "b", "b", "b"])
);
Reference
이 문제에 관하여(문자열 압축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/zeeshanali0704/string-compression-4kme텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)