输出指定长度子串

输出指定长度子串

https://www.nowcoder.com/practice/f7500a858bde41108f01286f57f554f3?tpId=98&tqId=32878&tPage=3&rp=3&ru=%2Fta%2F2019test&qru=%2Fta%2F2019test%2Fquestion-ranking

题目难度:一星
考察点:模拟、字符串

方法:模拟

1.分析:

这个题其实很简单了就是直接输出长度为n的子串就可以了,首先判断这个字符串的长度是否小于n,如果小于n,那么直接输出-1。否则就遍历区间,然后输出s.substr(i,n),这里需要介绍一下substr函数,这个函数是用来求子串的。
用法:s.substr(i,j) 表示获得字符串s中,从第i位开始的长度为j的字符串。
例如字符串s = "abc" 那么s.substr(0,2) 就等于"ab"。
利用substr可以很方便的求子串。
算法实现:
(1). 输入一个字符串s。
(2). 判断字符串长度是否小于n。
(3). 然后遍历[0,s.size()-n],输出s.substr(i,n)即可。

2.复杂度分析:

时间复杂度:O(n) 
空间复杂度:O(n)

3.代码: 

#include <bits/stdc++.h>
using namespace std;
int main(){
    string s; cin>>s;
    int n; cin>>n;
    if(s.size() < n) {
        cout<<"-1\n";
        return 0;
    }
    cout<<s.substr(0, n);
    for(int i=1; i<=s.size()-n; i++) cout<<" "<<s.substr(i,n);
    cout<<endl;
    return 0;
}



全部评论

相关推荐

球球别再泡了:坏,我单9要了14
点赞 评论 收藏
分享
牛客618272644号:佬携程工作怎么样,强度大吗
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务