리버스 전용 문자
6203 단어 javascriptleetcode
영문이 아닌 문자는 모두 같은 자리에 남습니다.
모든 영문자(소문자 또는 대문자)를 뒤집어야 합니다.
s를 뒤집은 후 반환합니다.
예 1:
입력: s = "ab-cd"
출력: "dc-ba"
예 2:
입력: s = "a-bC-dEf-ghIj"
출력: "j-Ih-gfE-dCba"
예 3:
입력: s = "Test1ng-Leet=code-Q!"
출력: "Qedo1ct-eeLg=ntse-T!"
var reverseOnlyLetters = function (arr) {
let str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
let start = 0;
let end = arr.length - 1;
let s = arr.split("");
while (start < end) {
let charStart = s[start];
let charEnd = s[end];
if (str.includes(charStart) && str.includes(charEnd)) {
s = swapChars(s, start, end);
start++;
end--;
}
if (!str.includes(charStart)) {
start++;
}
if (!str.includes(charEnd)) {
end--;
}
}
return s.join("");
};
const swapChars = (s, start, end) => {
let firstChar = s[start];
let enChar = s[end];
s[start] = enChar;
s[end] = firstChar;
return s;
};
console.log(reverseOnlyLetters("ab-cd"));
// Output: "dc-ba"
console.log(reverseOnlyLetters("a-bC-dEf-ghIj"));
// Output: "j-Ih-gfE-dCba"
console.log(reverseOnlyLetters("Test1ng-Leet=code-Q!"));
// Output: "Qedo1ct-eeLg=ntse-T!"
Reference
이 문제에 관하여(리버스 전용 문자), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/zeeshanali0704/reverse-only-letters-45gj텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)