Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >检查是否所有顶点都在循环中连接。

检查是否所有顶点都在循环中连接。
EN

Stack Overflow用户
提问于 2017-05-14 02:40:54
回答 2查看 753关注 0票数 0

我正在写一个项目,你可以画一个多边形与顶点和线连接,然后将它们运行到一个物理引擎,像pymunk。

我想确保所有的顶点都在这样的循环中连接

如果它没有像这样完全连接起来

每个顶点是一个顶点对象,如下所示

代码语言:javascript
运行
AI代码解释
复制
class Vertex():
    def __init__(self, id, position, pointsTo = [], rectSize = [10, 10]):
        self.id = int(id)
        self.position = tuple(position)
        self.rect = tuple((position[0], position[1], rectSize[0], rectSize[1]))
        self.pointsTo = list(pointsTo)

    def setPosition(self, position):
        self.position = tuple((position[0] - (self.rect[2] / 2), position[1] - (self.rect[3] / 2)))
        self.rect = tuple((self.position[0], self.position[1], self.rect[2], self.rect[3]))

    def getRect(self):
        return self.rect

其中,pointsTo是连接到该顶点的顶点列表,如果一个循环中的顶点列表被连接在一起,.How会找到它。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-05-14 05:09:43

如果我们把它看作一个图,我们就有了顶点,pointsTo是一个边的邻接列表。我也假设一个无向图,基于问题中的插图,所以如果A->B那么B->A,我们可以把多边形看作N圈。我忽略了屏幕上没有实际顶点的情况下的边交叉的可能性。

假设它是一个N-循环.然后每个顶点正好有两个边,所有的顶点都是连通的。这两种方法都很容易测试。

(注:如果每个顶点都有两条边,那么你就有了连接。连接的测试只是看看是否有多个多边形,或仅仅一个,并使证明更容易。有关类似的概念,请参见K%C3%B6nigsberg。正如这个著名的问题所显示的,如果允许多个多边形,但只想测试没有连接到多边形的额外行,则可以测试偶数。)

现在,假设一个图通过了上述测试--假设,从任意点开始,然后开始访问图后面的pointsTo顶点,而不使用以前访问过的边/顶点。每次访问一个新的顶点,这都是您第一次访问,因此您不能在该顶点使用其他pointsTo,因此您可以继续到顶点用完为止。那时,您有两个未使用的pointsTo --一个进入起始顶点,另一个进入结束顶点。它们要么pointsTo一个不存在的顶点,要么彼此pointsTo,这意味着它是一个N圈。

从而证明了上述测试的正确性。

我说过测试事物很容易,所以我应该这样做:要测试图形是否连通,请参阅理论)

将已访问的标志(初始化为false)添加到所有顶点。选择任何一个顶点,然后开始访问邻居。当您用完时,查看是否有任何顶点未被访问。

或者创建一组vertex.id,在访问时添加它们。最后,检查len(该集合)是图中的顶点数。

票数 1
EN

Stack Overflow用户

发布于 2017-05-14 06:44:50

您需要查看强连通分量的定义,然后测试您的图(由VertexEdges表示),即Vertex.pointsTo是否形成了由列表中所有顶点组成的强连接组件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43962927

复制
相关文章
替换空格
https://leetcode-cn.com/problems/ti-huan-kong-ge-lcof/
代码随想录
2021/07/16
4.7K0
替换空格
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
用户3003813
2018/09/06
3.1K0
替换空格
题目描述 请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 public class Solution { public String replaceSpace(StringBuffer str) { if(str==null){ return null; } StringBuilder newStr = new St
desperate633
2018/08/27
2.4K0
替换空格
题目:请实现一个函数,把字符串中的每个空格替换成“%20”。例如输入“We are happy.”,则输出“We%20are%20happy.”。       看到这个题目,我们首先应该想到的是原来一个空格字符,替换之后变成'%'、'2'和'0'这3个字符,因此字符串会变长。如果是在原来的字符串上做替换,那么就有可能覆盖修改在该字符串后面的内存。如果是创建新的字符串并在新的字符串上做替换,那么我们可以自己分配足够多的内存。       在这里介绍一种时间复杂度为O(n)的解法。        我们可以先遍历
猿人谷
2018/01/17
2.8K0
替换空格
空格替换
设计一种方法,将一个字符串中的所有空格替换成 %20 。你可以假设该字符串有足够的空间来加入新的字符,且你得到的是“真实的”字符长度。
呼延十
2019/07/01
2.3K0
[剑指offer] 替换空格
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
尾尾部落
2018/09/04
1.9K0
[剑指offer][Java]替换空格
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
蛮三刀酱
2019/03/26
2.1K0
空格替换
描述 设计一种方法,将一个字符串中的所有空格替换成 %20 。你可以假设该字符串有足够的空间来加入新的字符,且你得到的是“真实的”字符长度。 你的程序还需要返回被替换后的字符串的长度。 注意事项:如果使用 Java 或 Python, 程序中请用字符数组表示字符串。 样例 对于字符串 "Hello World" , 长度为 11 替换空格之后,参数中的字符串需要变为 "Hello%20World",并且把新长度 17 作为结果返回。 思路 循环遍历字符数组 碰到空字符则将空字符后所有的字符向后移动两位
一份执着✘
2018/06/04
2.6K0
替换空格_02
咱也不知道这题是不是有啥奇怪的思路要做?直接就下面这行代码结束了。 public String replaceSpace (String s) { if (s==null||s.length()==0){ return ""; }else { return s.replaceAll(" ","%20"); } }
名字是乱打的
2021/12/23
1.7K0
替换空格_02
LintCode 空格替换
设计一种方法,将一个字符串中的所有空格替换成 %20。你可以假设该字符串有足够的空间来加入新的字符,且你得到的是“真实的”字符长度。 你的程序还需要返回被替换后的字符串的长度。
desperate633
2018/08/22
7660
[剑指]2空格替换
1,题目描述 请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20 Happy。 2,解题思路 这里我们直接用字符串遍历的方法,将每一个字符遍历出来进行判断; 若等于空格,则替换成%20,不等于空格,则加上其本身即可; 最后再转换成字符串对象; 3,程序代码 public static String replaceSpace(StringBuffer str) { StringBuffer sb=n
程序员的时光001
2020/07/22
8950
004-替换空格
替换空格 请实现一个函数,将一个字符串中的每个空格替换成"%20"。 We Are Happy 输出 We%20Are%20Happy分析 遍历字符串 Python class Solution: def replaceSpace(self, s): # s 源字符串 s = list(s) count=len(s) for i in range(0,count): if s[i]==' ':
单车变摩托
2019/04/04
7260
牛客网 替换空格
一个空格最后替换成'%''2''0',一个字符替换为三个字符,相当于增加了2个字符;
怠惰的未禾
2023/04/27
1.5K0
从后往前替换空格
① 在字符串尾部填充任意字符,使得字符串的长度等于替换之后的长度。因为一个空格要替换成三个字符(%20),所以当遍历到一个空格时,需要在尾部填充两个任意字符。
MickyInvQ
2021/10/26
1K0
【剑指offer】替换空格
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
喜欢ctrl的cxk
2019/11/08
7410
【剑指Offer】替换空格
但是,显然这种已经有的方法不是面试官想要得到的答案,所以你得另寻方法,自己写个方法,如果写不出,那肯定给面试官不能留下一个好的印象。
Rochester
2020/09/10
6260
字符串:替换空格
示例 1: 输入:s = "We are happy." 输出:"We%20are%20happy."
代码随想录
2020/09/10
4.6K0
字符串:替换空格
Sword To Offer 002 - 替换空格
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
Reck Zhang
2021/08/11
5750
牛客网-替换空格
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
手撕代码八百里
2020/07/28
8570
word文档尾部空格没有下划线
问题出在兼容性上面了,office版本太多了!解决方法如下: 1.word2003——工具-〉选项-〉兼容性-〉找到“为尾部空格添加下划线”的选项打勾即可 2.word2007——点击左上角的“MS Office按钮”——word选项——高级——兼容性选项——版式选项——为尾部空格添加下划线 3.word2016——文件——选项——高级——兼容性选项——microsoft office 2013-2016——确定 修改后效果:
P轴
2022/11/18
9400

相似问题

用下划线替换空格

132

用下划线替换空格

50

${file%/*}用下划线替换空格

18

内容替换功能:用下划线替换空格

13

JQuery -用空格替换下划线

45
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文