我得到了一个字符串,我必须计算每个位对距离的和,其中两个位都是1.

For example the given string of 100101 would have the distance of 10
100101 (3)
100101 (5)
100101 (2)

因此,距离之和是3+5+2=10.

我目前的代码如下,我不能真正解决问题,我应该如何处理这个问题.

def pairs(s):
    count = 0
    for i in range(len(s)):
        if s[i] == '1':
            for j in range(i+1, len(s)):
                if s[j] == '1':
                    count += 1
    return count

if __name__ == "__main__":
    print(pairs("100101")) #10

我也曾try 将1存储在列表中,但无法计算出距离.

推荐答案

以下操作应该可以完成此操作:

def pairs(s):
    count = 0
    for i in range(len(s)):
        if s[i] == '1':
            dist = 0
            for j in range(i+1, len(s)):
                dist += 1
                if s[j] == '1':
                    count += dist
    return count

if __name__ == "__main__":
    print(pairs("100101")) #10

Python-3.x相关问答推荐

如何有效地计算Kernel/Matrix

Numpy argmin()以查找最近的元组

切片时是否在NumPy ND数组中创建新对象?

如何将python点击参数设置为与选项回调不同的参数的别名?

Python GUI:tkinter应用程序作为Windows的实时桌面

tkinter treeview 如何在获取所选项目时将设置的对象作为对象返回

Python 舍入数字不准确

三重奏:为什么频道被记录为使用async with,而不是with?

如何统计一个值连续出现的次数?

如何对具有多个列值的 pandas 数据框进行数据透视/数据透视表

XPATH:使用 .find_elements_by_xpath 为未知数量的 xpath 输入值

魔术8球txt文件列表

为什么我不能通过索引获取字典键?

将名字转换成姓氏、首字母和中间字母的格式

将字节数组转换为类似字节的对象?

无法在 Windows Python 3.5 上安装 Levenshtein 距离包

尾部斜杠的 FastAPI 重定向返回非 ssl 链接

如何创建一个永远在其上运行滚动协程的事件循环?

__iter__ 和 __getitem__ 有什么区别?

Pylint 中的模块PyQt5.QtWidgets错误中没有名称QApplication