C ++中按字典顺序的最后一个子字符串
假设我们以s作为字符串,我们必须按字典顺序查找s的最后一个子字符串。
因此,如果输入像“abbbcabbc”,那么输出将是“cabbc”
为了解决这个问题,我们将遵循以下步骤-
i:=0,j:=1,k:=0
而j+k<s的大小,做&minsu;
j:=j+k+1
i:=j
(将j增加1)
(将k增加1)
忽略以下部分,跳至下一个迭代
如果s[i+k]与s[j+k]相同,则-
如果s[i+k]<s[j+k],则-
除此以外
k:=0
从索引i返回s的子字符串到结尾
让我们看下面的实现以更好地理解-
示例
#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
string lastSubstring(string s) {
int i = 0;
int j = 1;
int k = 0;
while(j + k < s.size()){
if(s[i + k] == s[j + k]) {
k++;
continue;
}
if(s[i + k] < s[j + k]){
i = j;
j++;
}else{
j = j + k + 1;
}
k = 0;
}
return s.substr(i, s.size() - i);
}
};
main(){
Solution ob;
cout << (ob.lastSubstring("abbbcabbc"));
}输入值
"abbbcabbc"
输出结果
cabbc
热门推荐
10 新年门口花束祝福语简短
11 盘锦结婚祝福语大全简短
12 父母生日祝福语 简短独特
13 家庭恩爱祝福语简短英文
14 高考俄语祝福语大全简短
15 虎年祝福语 诗句唯美简短
16 生日婚礼祝福语简短精辟
17 虎年喝酒拜年祝福语简短
18 教师闺蜜祝福语简短