输出指定长度子串
输出指定长度子串
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;
}

查看6道真题和解析