【发布时间】:2015-03-28 20:40:46
【问题描述】:
我有一个简单的问题,但它让我感到困惑。
我有两个字符串,我想计算两者之间有多少不同的字符。字符串已排序,长度相等。不要拆分字符串。
例如
input: abc, bcd
output: 2, because a and d are different characters
input: abce, bccd
output: 4, because a, c, d and e are different.
我知道我可以在 O(N^2) 内完成,但是对于这些排序的字符串,我该如何在 O(N) 内解决呢?
只需要不同字符的个数,不需要指明是哪个数字。
【问题讨论】:
-
两者都只是字母数字字符吗?因此,您可以制作这些字符的直方图(两个字符串的直方图分别)。然后只需比较零元素的直方图列。 (O(n) + O(n) + O(非常小的 m*m))
-
“我知道我可以在 O(N2) 内完成” 你是怎么做到的?您可能无法做到(是否已排序字符串)来捕捉所有差异。
-
@πάντα ῥεῖ “你是怎么做到的?”用手指。
-
@VladfromMoscow 你现在开玩笑而不是提供 LQ 问题的答案?嗯,你现在好像进步了。
-
@πάνταῥεῖ 嗯? Why not something like this?
标签: c++ string string-comparison