-
Notifications
You must be signed in to change notification settings - Fork 0
/
diff.py
43 lines (32 loc) · 1.17 KB
/
diff.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
def empty_string(string):
if string is None:
return ''
else:
return string
def difference(string1, string2):
string1, string2 = empty_string(string1), empty_string(string2)
string1, string2 = string1.replace(u'\n', ''), string2.replace(u'\n', '')
string1, string2 = string1.replace(u'<', u'<'), string2.replace(u'>', u'>')
string1, string2 = string1.replace(u'>', u'>'), string2.replace(u'<', u'<')
start = u'<span style="background-color: red">'
end = u'</span>'
if len(string1) > len(string2):
a = string2
else:
a = string1
for i in range(len(a)):
if string1[i:i+1:] != string2[i:i+1:]:
string1 = string1[:i] + start + string1[i:]
string2 = string2[:i] + start + string2[i:]
break
for i in range(len(a)):
if string1[::-1][i:i+1:] != string2[::-1][i:i+1:]:
string1 = (string1[::-1][:i] + end[::-1] + string1[::-1][i:])[::-1]
string2 = (string2[::-1][:i] + end[::-1] + string2[::-1][i:])[::-1]
break
return string1, string2
'''
a = 'asdasdadsasdasdasd'
b = 'asdasdasdasdqwrwqrqwr'
print difference(a, b)
'''