#include <iostream>
#include <vector>
#include <string>
class Solution{
public:
std::vector<int> getIndexofMax(std::string &input)
{
std::vector<int> result;
for(int i = 0;i<input.size();i++)
{
result.push_back(getIndexofMaxCore(input, i));
}
return result;
}
int getIndexofMaxCore(std::string &input, int index)
{
int length = 1;
int maxIndex = 0;
if(index == 0)
{
return -1;
}
while(length < index)
{
if(input.substr(0,length) == input.substr(index - length, length))
{
maxIndex = length;
}
length++;
}
return maxIndex;
}
};
int main()
{
std::string s1 = "abcabcd";
std::vector<int> output = Solution().getIndexofMax(s1);
for(int i = 0;i<output.size();i++)
{
std::cout<<output[i]<<std::endl;
}
//std::cout<<Solution().getIndexofMaxCore(s1,6)<<std::endl;
return 0;
}
KMP——最长公共前后缀数组
最新推荐文章于 2023-10-14 12:55:15 发布