相关疑难解决方法(0)

找到使图像在列表中唯一的像素,你可以改善蛮力吗?

假设我有一个字符串列表,其中每个字符串都是

  • 正好4个字符长
  • 在列表中是唯一的.

对于这些字符串中的每一个,我想识别字符串中字符的位置,使字符串唯一.

所以对于三个字符串的列表

abcd
abcc
bbcb
Run Code Online (Sandbox Code Playgroud)

对于第一个字符串,我想识别第四个位置d中的字符,因为d没有出现在任何其他字符串的第4个位置.

对于第二个字符串,我想识别第四个位置c中的字符.

对于第三个字符串,我想识别第一个位置b中的字符和第四个位置的字符,也是b.

这可以简洁地表示为

abcd -> ...d
abcc -> ...c
bbcb -> b..b
Run Code Online (Sandbox Code Playgroud)

如果您考虑相同的问题,但使用二进制数列表

0101
0011
1111
Run Code Online (Sandbox Code Playgroud)

那么我想要的结果就是

0101 -> ..0.
0011 -> .0..
1111 -> 1...
Run Code Online (Sandbox Code Playgroud)

保持二进制主题我可以使用XOR来识别哪个位在两个二进制数内是唯一的

0101 ^ 0011 = 0110
Run Code Online (Sandbox Code Playgroud)

我可以解释为这意味着在这种情况下,第二和第三位(从左到右读取)在这两个二进制数之间是唯一的.这种技术可能是红鲱鱼,除非它以某种方式可以扩展到更大的列表.

蛮力方法是依次查看每个字符串,并为每个字符串迭代列表中其余字符串的垂直切片.

所以列表

abcd
abcc
bbcb
Run Code Online (Sandbox Code Playgroud)

我会先说

abcd
Run Code Online (Sandbox Code Playgroud)

并迭代垂直切片

abcc
bbcb
Run Code Online (Sandbox Code Playgroud)

这些垂直切片将在哪里

a | b | c | c
b | b | c | b
Run Code Online (Sandbox Code Playgroud)

或以列表形式,"ab","bb","cc","cb". …

language-agnostic algorithm image-processing brute-force

6
推荐指数
1
解决办法
770
查看次数