J o e
JoE's StOrY
J o e
  • 분류 전체보기 (206)
    • workSpace (184)
      • 도메인 지식 (2)
      • ALGORITHM (39)
      • ANDROID (3)
      • JS (0)
      • JAVA (21)
      • MYSQL (6)
      • NETWORK (3)
      • PYTHON (91)
      • LINUX (9)
      • PROJECT (4)
    • Others (20)
      • Opic (1)
      • myLife (17)
      • popSong (1)
      • 정보처리기사 (1)
    • 훈빠의 특강 (0)
      • opencv (0)
      • python (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • The code with long statements is⋯
  • 매일 매일이 행복하고 밝은 날이 될거에요

인기 글

태그

  • 이미지 연산
  • sort_value
  • full loss
  • sort_index
  • MySQL
  • linearclassification
  • 파이썬
  • 태블릿 연동
  • 단어의 개수
  • Python
  • Fully Connected Network
  • 넘파이 문제
  • numpy
  • ㅖ43
  • How to create a GUI in Java with JFrame?
  • java
  • DTO
  • 넘파이함수
  • dao
  • read_html

최근 댓글

최근 글

티스토리

J o e

WHY?

[가장 짧은 팰린드롬]
workSpace/ALGORITHM

[가장 짧은 팰린드롬]

2021. 2. 2. 08:23

[문제]

행운의 번호는 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
    'workSpace/ALGORITHM' 카테고리의 다른 글
    • [둥근 길]
    • [연속 캐시]
    • [행운의 번호]
    • [책 넣기]
    J o e
    J o e
    나의 과거를 기록합니다.

    티스토리툴바