python - 有什么方法可以在数组中重复一个字母吗?
问题描述
所以,这是我的问题:
我需要一种方法来计算数组中相等字母的差异,如果这还不够清楚,这里有一个例子:
In: estate
Out: +5 0 +2 0 0 0
In: tenant
Out: +5 0 +2 0 0 0
Explanation
所以,+5 表示“e”重复5 位后,0 表示不重复,在“租户”中也必须相同。
到目前为止我有这个:
from collections import Counter
DEBUG = True
#############################################################
class Isomorph_Tools:
def isIsomorphic(w1,w2) :
if len(w1) != len(w2): return False
return [len(set(w1)),len(set(w2))] == 2 * [len(set(zip(w1,w2)))]
def get_len(a):
counter=0
for i in a:
counter = counter + 1
return counter
def do_1(ary,inx):
for i in ary:
no = 0
for j in ary:
for l in range(0,get_len(ary)):
if ary.index(i) == inx and ary.index(i) != ary[l]:
no+=1
return no
else:
return 0
def main(a,b):
words = [a.split(" "),b.split(" ")]
if not(Isomorph_Tools.isIsomorphic(words[0],words[1])):
print(words[0] + ', ' + words[1] + 'are not isomorphs')
return
else:
lettersOne = list(words[0][0])
print(lettersOne)
lettersTwo = list(words[1][0])
print(lettersTwo)
the_ones = []
####Start The Calculation####
for letter in lettersOne:
letterIndex = lettersOne.index(letter)
print(lettersOne.index(letter))
for i in
the_ones.append(do_1(lettersOne,letterIndex))
print(the_ones)
main('estate','tenant')
请帮忙
解决方案
我假设您想查找下一个重复元素与当前元素的距离。
这是您可以执行的一种方法:
s = 'estate'
print([next((j for j, x in enumerate(s[i+1:], 1) if s[i] == x), 0) for i in range(len(s))])
# [5, 0, 2, 0, 0, 0]
同样'tenant'
,它输出[5, 0, 2, 0, 0, 0]
. 忘记迹象,无论如何它都是积极的。
推荐阅读
- mysql - 如何从nodejs连接到mysql?
- python - 如何修复 python3 sendmail 中的“UnicodeEncodeError”
- javascript - 您能否保持一系列父元素的高度相同,同时调整其中一个带有单击的子元素的高度?
- html - 如何将包含宽 HTML 的表格单元格的内容限制为整体特定宽度?
- java - 在 Spring 项目中删除用户(Spring Security)
- c# - Winforms 应用程序缺少数据集设计器文件 (.xsd)
- ckeditor - 为什么CKEditor更改原始元素和类
- dropdown - 在 CommandBar 中显示下拉菜单的推荐方法
- javascript - 饼图 amchart4
- python - 如何使用 python 脚本将新目录创建到 SD 卡