题解 | #截取字符串#

截取字符串

http://www.nowcoder.com/practice/a30bbc1a0aca4c27b86dd88868de4a4a

题目的主要信息:

  • 输入一个字符串和一个整数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;
}

复杂度分析:

  • 时间复杂度:O(k)O(k),字符串从0遍历到kk
  • 空间复杂度:O(1)O(1),无额外空间

方法二:库函数

具体做法:

也可以直接调用库函数,从0开始截断k位输出。

alt

#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;
}

复杂度分析:

  • 时间复杂度:O(k)O(k),截断函数的复杂度为子串长度
  • 空间复杂度:O(1)O(1),无额外空间
孤帆远影碧空尽 文章被收录于专栏

牛客网各类题单题解~

全部评论

相关推荐

07-22 11:07
门头沟学院 Java
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-23 14:18
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务