C#에서 가장 긴 공통 접두사 찾기 | Dotnet Office

공통 접두사를 찾는 방법에 대한 코드를 제시합니다. 좀 더 간단한 방법이 있을 듯 한데요?


1개의 좋아요

뭐 이런 느낌으로도 되겠군요.

string[] input = { "flower", "flight", "fly", "flow" };
string result = LongestCommonPrefixFun(input);
Console.WriteLine("Longest Common Prefix is- " + result); // Output: "fl"

static string LongestCommonPrefixFun(string[] input)
{
    if (input.Length is 0)
        return string.Empty;

    var minLength = input.Min(x => x.Length);
    for (var i = 0; i < minLength; i++)
    {
        if (input.Select(x => x[i]).Any(x => x != input[0][i]) is true)
            return input[0][..i];
    }

    return input[0][..minLength];
}
1개의 좋아요

오, ChatGPT도 나름 짜주네요.

| ChatGPT (Mar 23 Version)

static string LongestCommonPrefix(string[] input)
{
    if (input == null || input.Length == 0)
        return string.Empty;

    var minLength = input.Min(x => x.Length);
    if (minLength == 0)
        return string.Empty;

    for (var i = 0; i < minLength; i++)
    {
        var currentChar = input[0][i];
        for (var j = 1; j < input.Length; j++)
        {
            if (input[j][i] != currentChar)
                return input[0].Substring(0, i);
        }
    }

    return input[0].Substring(0, minLength);
}
2개의 좋아요