LeetCode #14 Longest Common Prefix

LeetCode #14 Longest Common Prefix

Question

Write a function to find the longest common prefix string amongst an array of strings.

Solution

Approach #1

class Solution {
    func longestCommonPrefix(_ strs: [String]) -> String {
        if strs.isEmpty { return "" }
        let utf16s = strs.map { Array($0.utf16) }
        for i in 0..<utf16s[0].count {
            for j in 1..<utf16s.count {
                if i == utf16s[j].count || utf16s[0][i] != utf16s[j][i] {
                    return String(utf16CodeUnits: Array(utf16s[0][0..<i]), count: i)
                }
            }
        }
        return strs[0]
    }
}

Time complexity: O(m * n). m is the length of strs, and n is the length of first string in strs.

Space complexity: O(m * n). We need to create array of utf16 array (utf16s).

转载请注明出处:http://www.cnblogs.com/silence-cnblogs/p/7065443.html

posted on 2017-06-22 15:57  Silence_cnblogs  阅读(201)  评论(0编辑  收藏  举报