나는이 문제가 해결되어야하는 포럼에서이 문제를 발견했다 : 당신은 일련의 통행이 주어질 것이고, 텍스트 (공백으로 구분 된 순서 단어들)은 하나 또는 그 이상의 다른 구절의 하위 구절로 전체적으로 포함되어있다.문자열 소거를위한 반복문을 통해 반복하기
봉쇄를위한 비교할 때, 특정 규칙을 따라야합니다: 연속 공백의 다른 블록을 하나의 공간으로 처리해야 알파벳 문자의 경우는 선행 및 후행 공백 을 무시해야 이 을 무시해야 영숫자가 아닌 문자는 무시해야하며 공백은 그대로 두어야합니다. 중복 또한 필터링해야합니다. 위에서 열거 한 비교 규칙과 비교하여 두 개의 구절이 같은 것으로 간주되면 가장 짧은 값만 유지해야합니다. 길이가 같으면 입력 순서의 첫 번째 문자를 유지해야합니다. 유지 된 통로는 원래 형태 (입력 통로와 동일)와 같은 순서로 출력되어야합니다.
입력 1 : IBM 인식 컴퓨팅 | IBM "인식"컴퓨팅은 혁명입니다. ibm인지 컴퓨팅 | 'IBM인지 컴퓨팅'은 혁명인가? IBM "인지"컴퓨팅 :
출력 1 : | | IBM은 "인지"컴퓨팅은 혁명인지 컴퓨팅 혁명이다
출력 2 IBM인지 컴퓨팅 : IBM은 "인지"컴퓨팅 혁명
입력 2입니다 혁명이 |인지 컴퓨팅은
내가 파이썬에서 다음 코드를 쓴 혁명이지만, 그것은 첫 번째 테스트 케이스보다는 좀 다른 출력을주고 :f = open("input.txt",'r')
s = (f.read()).split('|')
str = ''
for a in s:
for b in s:
if(''.join(e for e in a.lower() if e.isalnum()))not in (''.join(e for e in b.lower() if e.isalnum())):
str = a.translate(None, "'?")
print str
input.txt
에는 첫 번째 테스트 케이스 입력이 들어 있습니다. 출력을 다음과 같이 출력합니다. IBM인지 컴퓨팅은 혁명입니다. 누군가가 차임하고 나를 도와 줄 수 있습니까? 감사합니다
감사합니다. 다시 한 번 감사드립니다. – GoRion