LeetCode之Longest Common Prefix(Kotlin)

问题:



方法:
逐个比较字符串的最长公共前缀,复杂度O(m*n)。

package com.eric.leetcode

class LongestCommonPrefix {
    fun longestCommonPrefix(strs: Array): String {
        if (strs.isEmpty()) {
            return ""
        }
        if (strs.size == 1) {
            return strs[0]
        }
        return lcp(strs[0], 1, strs)
    }

    private fun lcp(s1: String, cur: Int, strs: Array): String {
        val s2 = strs[cur]
        var index = 0
        var commonPrefix = "";
        while (index <= s1.lastIndex && index <= s2.lastIndex) {
            if (s1[index] == s2[index]) {
                commonPrefix += s1[index]
            } else {
                break
            }
            index++
        }
        if (cur == strs.lastIndex) {
            return commonPrefix
        }
        return lcp(commonPrefix, cur + 1, strs)
    }
}

有问题随时沟通

具体代码实现可以参考Github

你可能感兴趣的:(LeetCode之Longest Common Prefix(Kotlin))