개발여행의 블로그
[알고리즘 javaScript] palindrome 팰린드롬:회문 문자열 본문
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
    
    
  '개발 > Algorithm' 카테고리의 다른 글
| [leetcode 821. Shortest Distance to a Character] 가장 짧은 문자거리 (0) | 2021.11.24 | 
|---|---|
| [알고리즘 javaScript] 숫자 추출 (0) | 2021.11.24 | 
| [유클리드 호제법] Euclidean algorithm (0) | 2021.09.09 | 
| [leetcode] 859. Buddy Strings solution(문제 풀이) (0) | 2021.08.21 | 
| [leetcode] 7. Reverse Integer 문제 풀이 (0) | 2021.08.15 | 
			  Comments
			
		
	
               
           
					
					
					
					
					
					
				