개발/Algorithm
[알고리즘 javaScript] palindrome 팰린드롬:회문 문자열
개발 여행
2021. 11. 24. 19:08
728x90
회문 문자열이란?
앞에서부터 읽거나 뒤에서부터 읽거나 모두 동일한 문자열이다.
문제
문자열이 주어졌을 때 회문 문자열인지 아닌지 출력하는 코드를 작성해보자!
입력 & 출력
길이 100 이하의 공백 없는 문자열
ex1) TEST -> false 출력
ex2) teeT -> ture 출력
풀이
두 가지 방법 정도로 해결할 수 있다.
1) Array.prototype.reverse()를 활용해서 거꾸로 뒤집어진 문자열 생성 후 같은지 확인.
2) 문자열의 앞과 뒤의 짝을 맞춰서 같은 문자인지 비교.
문자열의 맨 앞과 맨 뒤 비교, 두 번째 문자열과 끝에서 두 번째 문자열 비교
이렇게 반복해서 다른 문자가 있을 경우 false를 리턴한다.
코드
1) reverse
function 회문문자열(string) {
string = string.toUpperCase();
return string === [...string].reverse().join('');
}
2) 앞뒤 문자열 비교
function 회문문자열(string) {
let result = true;
string = string.toUpperCase();
for (let i = 0; i < Math.floor(string.length / 2); index++) {
if (string[i] !== string[string.length - i - 1]) {
return false;
}
}
return result;
}
참고
1) String.prototype.toUpperCase() 는 새로운 문자열을 반환하기 때문에 대문자로 변환한 문자를 다시 string의 값으로 할당해주어야 한다.
2) 문자열의 앞과 뒤의 짝을 맞춰서 같은 문자인지 비교하면 되기 때문에 string length를 2로 나눈 값 까지 for문이 반복되면 된다.
728x90