Как я могу исключить одинаковые символы с одинаковым индексом между двумя строками? - PullRequest
0 голосов
/ 30 октября 2019

Например, две строки задаются как "hello" и "sello" (или это также может быть список типа ["h","e","l","l","o"] и ["s","e","l","l","o"]. Удаляет одинаковые символы с одинаковым индексом между двумя строками.

После цикла исключения он должен вернуть "h" и "s" соответственно.

И, например, две строки даны как "sony" и "nani", тогда он должен вернуть "soy" и"nai"

Ответы [ 2 ]

0 голосов
/ 30 октября 2019

Может быть, кто-то опубликует что-то более прямолинейное, но это работает:

a = 'hello'
b = 'sello'
for i in range(min(len(a), len(b))):
    if a[i] == b[i]:
        a = [c if j != i else '' for j, c in enumerate(a)]
        b = [c if j != i else '' for j, c in enumerate(b)]
a = ''.join(a) # OUTPUT 'h'
b = ''.join(b) # OUTPUT 's'
0 голосов
/ 30 октября 2019
a = "hello"
b = "hallo world"
if len(a)>len(b):
strLen = len(b)
else:
strLen = len(a)
for i in range(strLen):
if a[i]==b[i]:
  a = a[:i] + a[(i+1):]
  b = b[:i] + b[(i+1):]
  i--;
  strLen--;

Вы просто получаете строку по индексу, сравниваете их один за другим и удаляете их. Но после того, как вы удалите один из них, вам нужно, чтобы следующий индекс стал текущим. Также, если вы не хотите удалять пробелы, вы можете добавить еще одно условие, чтобы проверить, не является ли текущий индекс в строке не пробелами

...