파이썬 단어 분할 알고리즘, Coderbyte

문제 정의:



WordSplit(strArr) 함수가 strArr에 저장된 문자열 배열을 읽도록 합니다. 여기에는 2개의 요소가 포함됩니다. 첫 번째 요소는 문자 시퀀스이고 두 번째 요소는 알파벳 순서로 쉼표로 구분된 단어의 긴 문자열입니다. , 임의 길이의 사전을 나타냅니다. 예: strArr은 다음과 같습니다.
["hellocat", "사과, 박쥐, 고양이, 안녕, 안녕, 노랑, 왜"].
목표는 입력의 첫 번째 요소를 두 단어로 분할할 수 있는지 확인하는 것입니다. 사전의 두 단어는 두 번째 입력에서 제공됩니다.
이 예에서 firs 요소는 두 단어로 나눌 수 있습니다.
hello와 cat은 둘 다 사전에 있기 때문입니다.

프로그램은 사전에 있는 두 단어를 쉼표로 구분하여 반환해야 합니다. 따라서 위의 예에서 프로그램은 hello, cat을 반환해야 합니다. 문자의 첫 번째 요소를 두 단어로 분할하는 올바른 방법은 하나뿐입니다. 문자열을 사전에 존재하는 두 단어로 분할할 방법이 없으면 가능하지 않은 문자열을 반환합니다. 첫 번째 요소 자체는 사전에 실제 단어로 존재하지 않습니다.

# define the function to manipulate string

def WordSplit(strArr):
  for i, j in enumerate(strArr[1].split(',')):
    '''subtract a string from the main string'''

    new = strArr[0].replace(j.strip(),'')  

    '''then search through the other strings and compare with the remainder after subtraction'''

    for x in strArr[1].split(','):
      if new == x.strip():
        if strArr[0] == j.strip() + new:
          return f'{j.strip()},{new}'

  return 'not possible'

strArr = ['baseball', 'a, all, b, ball,base,  bas,  cat, code, d, e, quit, z'] #test case

response = WordSplit(strArr)    
'''intersperse this code with the ouput of the function'''
code = 'fg23klq6r9'

print(response )
intersperse = ''.join(i+j for i, j in zip(response, code))
print(intersperse )

좋은 웹페이지 즐겨찾기