查找两个字符串之间的变化索引

时间:2017-08-08 15:26:54

标签: swift

假设:

let string a = "hello world"

let string b = "hello! world"

let string b = "hell world"

找到变化指数的最佳方法是什么? (5或4)

谢谢!

2 个答案:

答案 0 :(得分:2)

你可以这样使用commonPrefix

let a = "hello world"
let b = "hello! world"
let index = a.commonPrefix(with: b).characters.count
print(index)    // prints 5

请注意,ab的顺序并不重要。

这是一个更新的函数,如果没有任何共同点,则返回nil,否则返回更改的索引(之前的解决方案是错误的)。

func indexOfChangeBetween(a: String, and b: String) -> Int? {
    var index = a.commonPrefix(with: b).characters.count
    if index < 1 {
        return nil
    }
    return index - 1
}

测试:

print(indexOfChangeBetween(a: "", and: ""))     // nil
print(indexOfChangeBetween(a: "x", and: ""))    // nil
print(indexOfChangeBetween(a: "", and: "x"))    // nil
print(indexOfChangeBetween(a: "x", and: "x"))   // 0
print(indexOfChangeBetween(a: "ab", and: "a"))  // 0
print(indexOfChangeBetween(a: "a", and: "ab"))  // 0
print(indexOfChangeBetween(a: "ab", and: "ab")) // 1

答案 1 :(得分:0)

您可以使用hashmap将字符串映射到地图 例如

关键:你好世界 价值:Hello world 如果key!= value,那么我们知道订单已被挂起。