题目的主要信息:
输入一个字符串和一个整数 k ,截取字符串的前k个字符并输出。
方法一:
输入字符串str和整数k,利用函数substr输出前k个字符。 具体做法:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str;
int k;
while(cin>>str>>k){//输入字符串和k
string sub_str = str.substr(0,k);
cout<<sub_str<<endl;//输出前k个字符
}
}
复杂度分析:
- 时间复杂度:,substr函数的时间复杂度为。
- 空间复杂度:,只用了常数空间。
方法二:
输入字符串str和整数k,利用for循环遍历一遍字符串,逐个输出字符,直到遍历完前k个字符就停止遍历。
具体做法:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str;
int k;
while(cin>>str>>k){//输入字符串和k
for(int i = 0;i < k;i++){//遍历一遍字符串,输出前k个字符
cout<<str[i];
}
cout<<endl;
}
}
复杂度分析:
- 时间复杂度:,只遍历了前k个字符,for循环的时间复杂度为。
- 空间复杂度:,只用了常数空间。