C++双指针,速度超过dp | #最长公共子串#

最长公共子串

http://www.nowcoder.com/practice/f33f5adc55f444baa0e0ca87ad8a6aac

class Solution {

public:

/**
* 双指针
*/
string LCS(string str1, string str2) {
    int first = 0, second = 0;

	int maxLen = 0;
	string res;
	while (second < str1.size()) {
		string subStr = str1.substr(first, second - first + 1);
		if (str2.find(subStr) != string::npos) {
			if (subStr.size() > maxLen) {
				maxLen = subStr.size();
				res = subStr;
			}
			second++;
		} else {
			if (second == first) {
				second ++;
				first ++;
			} else if (first < second) {
				first ++;
			}
		}
	}

	return res;
}

};

全部评论
牛客网 if (second++ == first++) 显示报错
点赞 回复 分享
发布于 2023-02-03 13:11 广东
这个方法很快 16ms
点赞 回复 分享
发布于 2023-10-29 21:43 上海

相关推荐

不愿透露姓名的神秘牛友
11-27 10:52
点赞 评论 收藏
分享
11-08 10:39
门头沟学院 C++
点赞 评论 收藏
分享
11-09 12:17
清华大学 C++
out11Man:小丑罢了,不用理会
点赞 评论 收藏
分享
评论
9
收藏
分享
牛客网
牛客企业服务