From e5daa114fa7d5050fc9c4b012d6c58bdb40a5818 Mon Sep 17 00:00:00 2001 From: GHTaarn <62629455+GHTaarn@users.noreply.github.com> Date: Tue, 20 Feb 2024 08:05:38 +0100 Subject: [PATCH] Handle trivial input better in 14.longest-common-prefix.jl (#172) * Improve 14.longest-common-prefix.jl This change makes the algorithm able to handle trivial cases where there is only one input string or where all input strings are equal * More tests for 14.longest-common-prefix.jl --- src/problems/14.longest-common-prefix.jl | 2 +- test/problems/14.longest-common-prefix.jl | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/problems/14.longest-common-prefix.jl b/src/problems/14.longest-common-prefix.jl index 057dd61b1..32ad7aeed 100644 --- a/src/problems/14.longest-common-prefix.jl +++ b/src/problems/14.longest-common-prefix.jl @@ -48,7 +48,7 @@ using LeetCode function longest_common_prefix(strs::Vector{String})::String s1, s2 = minimum(strs), maximum(strs) pos = findfirst(i -> s1[i] != s2[i], 1:length(s1)) - return isnothing(pos) ? "" : s1[1:(pos - 1)] + return isnothing(pos) ? s1 : s1[1:(pos - 1)] end ## @lc code=end diff --git a/test/problems/14.longest-common-prefix.jl b/test/problems/14.longest-common-prefix.jl index f21db06db..686a09db9 100644 --- a/test/problems/14.longest-common-prefix.jl +++ b/test/problems/14.longest-common-prefix.jl @@ -2,4 +2,7 @@ @test longest_common_prefix(["flower", "flow", "flight"]) == "fl" @test longest_common_prefix(["dog", "racecar", "car"]) == "" @test longest_common_prefix(["reflower", "flow", "flight"]) == "" + @test longest_common_prefix(["abc"]) == "abc" + @test longest_common_prefix(fill("abc", 5)) == "abc" + @test longest_common_prefix(fill("", 4)) == "" end