#14.Longest Common Prefix
Problem statement
Write a function to find the longest common prefix string amongst an array of strings.
If there is no common prefix, return an empty string ""
.
Example 1
Input: strs = ["flower","flow","flight"]
Output: "fl"
Example 2
Input: strs = ["dog","racecar","car"]
Output: ""
Explanation: There is no common prefix among the input strings.
Explanation
找出陣列中所有元素最長的相同字符並返回,如果沒有相同字符則返回空字串 ""
。
例如 cat
和 carry
相同的前綴字符為 ca
Solution
用雙迴圈逐一比對,第一層遍歷元素長度,第二層則遍歷陣列內所有元素。
但是找尋陣列內元素時,不可使用超出元素長度的索引,故先找到陣列內最短長度的元素,再以此長度作為第一層迴圈的中止值。
public string LongestCommonPrefix(string[] strs)
{
if (strs.Length == 0) return null;
string res = string.Empty;
string str = strs[0];
foreach (var s in strs)
{
if (s.Length < str.Length)
str = s;
}
int len = strs.Length;
for (int i = 0; i < str.Length; i++)
{
for (int j = 0; j < len; j++)
{
if (str[i] == strs[j][i])
continue;
else
return res;
}
res += str[i];
}
return res;
}
Reference
Thanks for reading the article 🌷 🌻 🌼
If you like it, please don't hesitate to click heart button ❤️
or click like on my Leetcode solution
or follow my GitHub ⭐ I'd appreciate it.
Top comments (0)