[문제]
행운의 번호는 2*n 자릿수를 가진 숫자인데, 왼쪽에서 부터 n개의 숫자의 합이 오른쪽에서 부터 n개의 숫자의 합과 같다
당신에게 0을 제외한 숫자로만 이루어진 문자열 s가 주어진다. 이 문자열의 부분 문자열 중 가장 긴 행운의 번호의 길이를 구하시오. 만약 행문의 번호가 없다면 0 을 반환하시오.
풀이 1) - jave
더보기
public class Solution{
public int solution(String s){
if(check(s)){
return s.length();
}else{
int count=1;
while(count<s.length()){
if(check(s.substring(count,s.length()))){
return s.length()+count;
}
count++;
}
return s.length()+count;
}
}
public boolean check(String s){ //부분 문자열이 팰린드롬인지 판단하는 메소드
for(int i=0;i<s.length()/2;i++){
if(s.charAt(i)!=s.charAt(s.length()-1-i)) return false;
}
return true;
}
}
풀이 2) - python
더보기
class Solution:
def solution(self, s):
reverse_s = s[::-1] #s를 거꾸로
p_num = len(s)
for i in range(len(s)-1):
if s[i:] == reverse_s[:len(s)-i]: break
p_num += 1
return p_num
풀이 3) - python
더보기
class Solution:
def solution(self, s):
if s==s[::-1]: return len(s)
for i in range(len(s)):
if s[i:]==s[i:][::-1]:
return len(s)+i
'workSpace > ALGORITHM' 카테고리의 다른 글
[둥근 길] (0) | 2021.02.02 |
---|---|
[연속 캐시] (0) | 2021.02.02 |
[행운의 번호] (0) | 2021.02.02 |
[책 넣기] (0) | 2021.02.02 |
[Python] 핸드폰 번호 가리기 (0) | 2020.12.20 |