본문 바로가기
IT/Python

파이썬 알고리즘 - 문자열로 서로 다른 단어 만들어내기(Anagram)

by SimpleWorld StoryFeed 2019. 10. 25.

개발자 면접 트레이딩 - 파이썬 알고리즘 문제(3)

 

 


(1). 개발자 면접 트레이닝 - 두 문자열이 구성 요소가 같은지 확인(Anagram)하는 알고리즘


① 파이썬의 join, sorted, strip 함수를 활용

② 소문자로 변환 후 정렬이 핵심

③ 예를들어 elivs 는 = lives  , basic = isabc 와 같이 구성요소가 같다.

 

 

(2). 소스 코드


PYTHON

#anagram.pyimport unittest#두 문자열을 입력받아 정렬 한 후 같은 지 비교 (문자로 서로 다른 단어 만들어 내기)def anagram(str1, str2):    if ''.join(sorted(str1.lower())).strip() == ''.join(sorted(str2.lower())).strip(): #대문자 정렬도 가능 upper()        return True    else:        return Falseclass anagramTest(unittest.TestCase):    def test(self):        self.assertTrue(anagram("elvis", "livez"))        print(anagram("elvis", "livez"))        self.assertTrue(anagram("basic", "is abd"))        print(anagram("basic", "is abd"))unittest.main()

 

(3). 소스 코드 분석


① 10 라인 : 먼저 입력받은 문자열을 소문자로 변환하여 변환 한 후 Join 함수로 변환 후에 strip으로 공백 제거

② 10 라인 : 두 문자열을 비교 후 구성 요소가 같으면 True 아니면 False

③ 19 라인 : assertTrue 단위 테스트 함수를 사용하여 실행 결과가 True가 나오는지 확인

④ 20 라인 : Print 함수로 출력


 

파이썬(Python)

으로 작성한 후 같은 코드를  

Java

변환

하여 작성해보면 더욱

도움

이 될 것이다.


(4

).

실행결과1 - 단위테스트 정상 출력(구성 요소가 같은 경우)

 

 

(5

).

실행결과2 - 단위테스트 정상 출력(구성 요소가 다른 경우)



 

 



저작자표시

동일조건

  • 네이버 블러그 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 구글 플러스 공유하기
  • 카카오스토리 공유하기

댓글0