🗃️javascript/코테 프레임 문제
3-1 회문문자열[투 포인터 방법론]
하얀성
2023. 9. 15. 14:46
<제출답안>
unshift를 통해 앞에서부터 돌려서 문자를 반대로 돌렸다.
맞게 풀긴했다. 하지만 밑 코드 보단 효율은 썩 좋지 않다.
function solution(s){
let arr2 =[];
let arr1 = s.toUpperCase();
for(let i of arr1){
arr2.unshift(i)
}
if(arr1 === arr2.join("")){
return "Yes"
}else{
return "No"
}
}
let str="gooG";
console.log(solution(str));
<다른 풀이>
이런식으로 투 포인터로 배열의 앞과 뒤에서 동시에 접근하는 방식.
이런 방식이 나중에 고급문제들 가면 더 필요하다.
다양한 방식으로 푸는게 정말 중요하다.
아님 reverse()메서드로 돌려도 된다.
이 방법은 문자열의 절반만큼만 반복하므로 시간 복잡도가 O(n/2)가 되어 조금 더 효율적입니다.
1
2
3
4
5
6
7
8
9
10
11
12
|
function solution(s){
let answer="YES";
s=s.toLowerCase();
let len=s.length;
for(let i=0; i<Math.floor(len/2); i++){
if(s[i]!=s[len-i-1]) return "NO";
}
return answer;
}
let str="goooG";
console.log(solution(str));
|
cs |