首页 > 解决方案 > 我怎样才能得到所有大小为k的字符串子字符串?

问题描述

我不知道我的代码中的错误在哪里?有人可以帮我解决它。

我的代码:

#include<bits/stdc++.h>
using namespace std;
#define ll long long
void solution() {
   string s;
   ll k;
   cin >> s >> k;
   for(int i=0; i<=s.length()-k; i++) {
       for(int r=k-1; r<s.length(); r++){
           cout << s.substr(i,r) << endl;
       }
   }
}
int main() {
    ll t;
    cin >> t;
    while(t--){
         solution();
    }
    return 0;
}

输入 :

1
ABCD 3

预期输出:

ABC
BCD

实际输出:

AB
ABC
BC
BCD

标签: c++string

解决方案


我不知道为什么你需要一个嵌套的 for 循环。为什么这不仅仅是简单的:

void solution() {
   string s;
   ll k;
   cin >> s >> k;

   for(int i = 0; i <= s.length() - k; i++) {
     cout << s.substr(i, k) << endl;
   }
}

推荐阅读