
总言
主要内容:编程题举例,熟悉理解字符串类题型。
文章目录
1、字符串
主要在于熟悉字符串类的OJ题常用容器和接口。主要与其它算法结合使用。
2、最长公共前缀(easy)
题源:链接。

2.1、题解
1)、思路分析
这里需要注意理解,一个字符串的前缀是从该字符串的第一个字符起始的一个子串。
方法一: 字符串两两比较,可以先找出前两个的最长公共前缀,然后拿这个最长公共前缀依次与后⾯的字符串比较,获取新的最长公共前缀,这样所有字符串比较完成,就能获取到最终结果。

方法二: 统一比较所有字符串中 i 位置处的字符是否相同。何时结束比较?(遍历到某一字符串的尾部,或当前遍历字符与其它字符不相同,说明此前的字符均为公共前缀。)

2)、题解
字符串两两进行比较的写法:
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
//一个字符串的前缀是从该字符串的第一个字符起始的一个子串
string ret = strs[0];//PS:数组中只有一个字符串,也满足条件(不进入循环,直接返回strs[0])。
for(int i = 1; i < strs.size(); ++i)
{
ret = stringcompare(ret,strs[i]);
}
return ret;
}
//两字符串比较
string stringcompare(string& s1, string& s2)
{
int i = 0;
int len = min(s1.size(), s2.size());
while(i < len && s1[i] == s2[i]) //当两字符串均存在,且当前位置元素相同时
i++;
return s1.substr(0,i);//string substr (size_t pos = 0, size_t len = npos) const;
}
};
字符串统一进行比较的写法:
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
string ref = strs[0];//以第一个字符串作为参照,后续字符串进行比较判断
for

本文介绍了编程中的字符串类题型,包括最长公共前缀、最长回文子串、二进制求和(高精度加法)和字符串相乘(高精度乘法)的解题思路和示例代码,帮助读者提升字符串处理和高精度计算能力。
最低0.47元/天 解锁文章
1158

被折叠的 条评论
为什么被折叠?



