공통 접두사를 찾는 방법에 대한 코드를 제시합니다. 좀 더 간단한 방법이 있을 듯 한데요?
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개의 좋아요