파이썬 문자열에서 특정 문자열을 만들 수 있는지 확인하는 프로그램
조회수 363회
예를 들어
우선 두가지 문자열을 입력받는데,
Alice in wonderland
Aciwl
이렇게 입력을 받습니다 Aciwl라는 문자열은 Alice in wonderland라는 글자에서 몇놈들만 쳐내면 만들어낼 수 있는 문자열이니까 출력값은 '가능함'이 되고
불가능한 경우는
Alice in wonderland
Awalc
이런 경우입니다 순서를 뒤섞지 않는 이상 다른 놈들을 아무리 지워도 아래의 문자열을 만들 수는 없는 경우요
이럴 땐 어떤 함수를 활용해야 하는지부터가 막막해서 질문드립니다 ㅠ
2 답변
-
def compare(a,b): ap = 0 bp = 0 if a[ap] != b[bp]: print("Not matched") ap += 1 bp += 1 while ap < len(a) and bp < len(b): if a[ap] != b[bp]: ap += 1 else: ap += 1 bp += 1 if bp != len(b): print("Not Match") else: print("Match :D") a = 'Alice in wonderland' b = 'Aciwl' compare(a,b)
함수를 만드는 문제이고 다음부터 누군가든 아무개든....
질문했을때에는 최소한의 시도를 보여주시는게 예의라고 생각합니다.
- 도움 주셔서 감사합니다 ㅜ 새벽에 너무 멘붕이 와가지고 정신없이 올렸네요.. 죄송합니다 함수를 만들 생각 없이 문자열끼리 인덱스 비교해가면서 이미 두번째 문자열에 쓰인 인덱스는 슬라이싱해서 다시 비교하는 식으로 코드 짜보려고 했는데 아무리 해도 안되어서요 혹시 몰라서 제가 시도하다 막혔던 코드 답변에 달아보겠습니다 손봐달라는 건 아니고 그냥 저런 식으로 하다가 말았구나 하심 될 거 같아여 김예진 2020.9.17 12:08
- 제가 드린 코드중 첫값 검증(line 5~9)하는건 제외해도 동일하게 동작할거예요 수고하세요 :3 김호원 2020.9.17 16:18
-
s = input() t = input() for i in range(len(t)-1): Find = True if s.find(t[i])!= -1: s = s[s.find(t[i])+1:] else: Find = False if Find: print("Yes") else: print("No")
이런 식으로 만들다가 막혔었어요
엊그제 시작한 왕초보라 실력 게시하기가 부끄러워서 첨부할 생각도 못했나봐요. 도움 주셔서 정말 감사합니다
댓글 입력