题解 | #截取字符串#

截取字符串

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 河南

相关推荐

点赞 评论 收藏
分享
05-25 10:45
门头沟学院 Java
Frank_zhan...:没实习一个项目肯定不够,可以再做一个轮子,技术栈再补一个mq,微服务,整体再换个简历模板,暑期尽量再找一个日常实习
无实习如何秋招上岸
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

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