需要一个Java函数来查找两个字符串的交集.即字符串共有的字符.
例:
String s1 = new String("Sychelless");
String s2 = new String("Sydney");
Run Code Online (Sandbox Code Playgroud) 长话短说:我有2个对象集合.一个包含好的值(让我们称之为"好"),其他默认值(先生"默认").我希望联盟的相交在良好和默认之间,以及默认.换句话说:相交(联合(良好,默认),默认).有人可能认为它解析为默认值,但这里是棘手的:我使用自定义IEqualityComparer.
我得到了以下课程:
class MyClass
{
public string MyString1;
public string MyString2;
public string MyString3;
}
class MyEqualityComparer : IEqualityComparer<MyClass>
{
public bool Equals(MyClass item1, MyClass item2)
{
if(item1 == null && item2 == null)
return true;
else if((item1 != null && item2 == null) ||
(item1 == null && item2 != null))
return false;
return item1.MyString1.Equals(item2.MyString1) &&
item1.MyString2.Equals(item2.MyString2);
}
public int GetHashCode(MyClass item)
{
return new { item.MyString1, item.MyString2 }.GetHashCode();
}
}
Run Code Online (Sandbox Code Playgroud)
以下是我的收藏品Good和Default集合的特征:
默认值:它是一个很大的集合,包含所有想要的{MyString1,MyString2}对,但是你可以猜测,MyString3值是默认值.
好:它是一个较小的集合,主要包含默认集合中的项目,但具有一些好的MyString3值.它还有一些{MyString1,MyString2},它们位于想要的集合之外.
我想要做的是:只获取Good中默认的项目,但将Default中的其他项目添加到默认项目中.
这是我认为最好的尝试:
HalfWantedResult = Good.Union(Default, …Run Code Online (Sandbox Code Playgroud) 什么是用于确定点是否在3D网格内的快速算法?为简单起见,您可以假设网格是所有三角形并且没有孔.
到目前为止我所知道的是,确定光线是否穿过网格的一种流行方法是计算光线/三角形交叉点的数量.它必须很快,因为我将它用于触觉医疗模拟.所以我无法测试光线交叉的所有三角形.我需要某种散列或树数据结构来存储三角形,以帮助确定哪个三角形是相关的.
另外,我知道如果我对顶点进行任意2D投影,则需要进行简单的点/三角交点测试.但是,我仍然需要知道哪些三角形是相关的,此外,哪些三角形位于该点的前面并且仅测试这些三角形.
我有一个可能很简单的问题,让我已经安静了一段时间.有没有一种简单的方法可以在python matplotlib中返回两个绘制的(非分析)数据集的交集?
为了详细说明,我有这样的事情:
x=[1.4,2.1,3,5.9,8,9,23]
y=[2.3,3.1,1,3.9,8,9,11]
x1=[1,2,3,4,6,8,9]
y1=[4,12,7,1,6.3,8.5,12]
plot(x1,y1,'k-',x,y,'b-')
Run Code Online (Sandbox Code Playgroud)
此示例中的数据完全是任意的.我现在想知道是否存在一个我一直缺少的简单构建函数,它会返回两个图之间的精确交点.
希望我清楚自己,并且我也没有错过任何明显的东西......
我想知道判断Shape对象是否与另一个形状相交的最佳方法.目前我在我的游戏中进行了碰撞检测,只要它涉及一个与矩形相交的形状,反之亦然.我遇到的问题是Shape类中的intersects()方法只能将Rectangle或Point作为参数,而不是另一个Shape.有没有一种有效的方法来测试两个Shape对象是否以任何方式重叠?我尝试过的一种方法是使用for循环生成一个点区域来测试它们是否在形状中,然后构建一个Point对象数组以发送到另一个形状进行测试,但这显着降低了我的帧率因为所有不必要的比较.
我在这里寻找并寻找类似的东西,但没有找到任何真正的东西.如果这是重复,请提前抱歉.
我使用scipy.spatial.ConvexHull创建了一个凸包.我需要计算凸包和光线之间的交点,从0开始并在某个其他定义点的方向上.已知凸包含0,因此应保证交叉.问题的维度可以在2到5之间变化.我尝试了一些谷歌搜索,但没有找到答案.我希望这是计算几何中已知解决方案的常见问题.谢谢.
作为一个普遍感兴趣的问题,我想知道是否有更优雅/有效的方法来做到这一点.我有一个函数比较两个日期的开始/结束元组,如果它们相交,则返回true.
from datetime import date
def date_intersection(t1, t2):
t1start, t1end = t1[0], t1[1]
t2start, t2end = t2[0], t2[1]
if t1end < t2start: return False
if t1end == t2start: return True
if t1start == t2start: return True
if t1start < t2start and t2start < t1end: return True
if t1start > t2start and t1end < t2end: return True
if t1start < t2start and t1end > t2end: return True
if t1start < t2end and t1end > t2end: return True
if t1start > t2start …Run Code Online (Sandbox Code Playgroud) 又称3D中的多边形裁剪算法
又找到2个碰撞多边形之间的碰撞流形
大多数用于多边形裁剪的算法都针对2D进行了详细描述,并且描述为可扩展到3D但没有细节.例如sutherland-hodgman裁剪算法
我无法在互联网上找到任何3D实现或伪代码,我现在在这里问(并试图回答我自己的问题)
该算法将采用两种形状,如下所示:

并输出两个形状的交集,如下所示:

请注意,尽管Sutherland-Hodgman算法找到了两个多边形的交集,但它(和大多数其他多边形)在剪切多边形和剪切多边形之间进行了区分.修剪的多边形可以是凹的或凸的,但是修剪的形状必须是凸的.然而,我在扩展到3D时的实现要求两个形状都是凸的,这表明它不是真正的3D sutherland-hodgman算法,并且其他答案(使用任何算法)提升这个要求将非常感激
我有几百万套C的大集合.我的集合的元素来自大约2000个可能元素的宇宙.我需要知道,对于给定的集合,s,C中的集合与s的交集最大?(或者k在C中设置k个最大的交叉点).我将依次针对不同的s进行许多这些查询.
我知道这样做的显而易见的方法是循环遍历C中的每个集合并计算交集并取最大值.是否有任何智能数据结构/编程技巧可以加快我的搜索速度?如果我能比O(C)更快地做到这一点会很棒.
编辑:大致的答案也没关系
假设定义了以下类型:
interface Shape {
color: string;
}
Run Code Online (Sandbox Code Playgroud)
现在,请考虑以下方法为此类型添加其他属性:
延期
interface Square extends Shape {
sideLength: number;
}
Run Code Online (Sandbox Code Playgroud)
路口
type Square = Shape & {
sideLength: number;
}
Run Code Online (Sandbox Code Playgroud)
两种方法有什么区别?
而且,为了完整性和出于好奇,有没有其他方法可以产生可比较的结果?