题解 | #截取字符串#

截取字符串

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

题目的主要信息:

输入一个字符串和一个整数 k ,截取字符串的前k个字符并输出。

方法一:

输入字符串str和整数k,利用函数substr输出前k个字符。 alt 具体做法:

#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个字符
    }
}

复杂度分析:

  • 时间复杂度:O(k)O(k),substr函数的时间复杂度为O(k)O(k)
  • 空间复杂度:O(1)O(1),只用了常数空间。

方法二:

输入字符串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;
    }
}

复杂度分析:

  • 时间复杂度:O(k)O(k),只遍历了前k个字符,for循环的时间复杂度为O(k)O(k)
  • 空间复杂度:O(1)O(1),只用了常数空间。
全部评论
点赞 回复 分享
发布于 2023-01-21 15:34 河南

相关推荐

07-02 18:09
门头沟学院 Java
苍穹外卖和谷粒商城这俩是不是烂大街了,还能做吗?
想去重庆的鸽子在吐槽:你不如把这俩做完自己搞明白再优化点再来问 何必贩卖焦虑
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-07 12:04
毕业生招你惹你了,问一个发薪日来一句别看网上乱七八糟的你看哪个工作没有固定发薪日扭头就取消了面试就问了一句公司都是这个态度吗还搞上人身攻击了...
程序员小白条:呃呃呃,都还没面试,我都不会问这么细,何况通不通过,去不去都另说,你没实力和学历的话,在外面就这样,说实话没直接已读不回就不错了,浪费时间基本上
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

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