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