求得多个字符串的最长公共前缀,求多个字符串的最长公共前缀
BM84最长公共前缀
描述一个大小为n的字符串数组strs,包含n个字符串。写一个函数,找出字符串数组中最长的公共前缀,并返回这个公共前缀。
数据范围:高级:空间复杂度,时间复杂度
示例1输入:
[abca , ABC , abca , ABC , abcc]返回值:
abc
2示例输入:
[abc]返回值:
“abc”问题解决暴力遍历法的思考;
设prefix_length为最长公共前缀的长度。当输入为空时,公共前缀为空。当输入不为空时,将最长公共长度设置为第一个字符串的长度以遍历剩余的字符串,当在剩余的字符串中遇到不想等待的第一个字符时,更新最长公共前缀长度。返回值:s[0]。sub_str(0,前缀_长度)代码如下:
#包含位/标准数据。h
使用命名空间std
字符串longestCommonPrefix(向量字符串strs)
{
std:字符串前缀;
if (strs.empty())
{
返回前缀;
}
int prefix_length=strs[0]。size();
for(int I=1;I strs . size();我)
{
for(int k=0;k前缀_长度;k)
{
if (k=strs[i]。size() strs[i - 1][k]!=strs[i][k])
{
前缀_长度=k;
打破;
}
}
}
返回str[0]。substr(0,前缀_长度);
}trie树(字典树)解决方案
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。