题目的主要信息:
- 输入一个字符串和一个整数k,截取字符串的前k个字符并输出
方法一:遍历
具体做法:
直接遍历字符串,但是我们只遍历从0到k,依次输出每个遍历到的字符即可。
#include<iostream>
#include<string>
using namespace std;
int main(){
string s;
int k;
while(cin >> s >> k){
for(int i = 0; i < k; i++) //遍历字符串前k个位置
cout << s[i]; //输出
cout << endl;
}
return 0;
}
复杂度分析:
- 时间复杂度:,字符串从0遍历到
- 空间复杂度:,无额外空间
方法二:库函数
具体做法:
也可以直接调用库函数,从0开始截断k位输出。
#include<iostream>
#include<string>
using namespace std;
int main(){
string s;
int k;
while(cin >> s >> k){
cout << s.substr(0, k) << endl; //直接截取输出从0开始的前k部分
}
return 0;
}
复杂度分析:
- 时间复杂度:,截断函数的复杂度为子串长度
- 空间复杂度:,无额外空间