力扣刷题记录Day01

技术力扣刷题记录Day01 力扣刷题记录Day011816.截断句子
句子 是一个单词列表,列表中的单词之间用单个空格隔开,且不存在前导或尾随空格。每个单词仅由大小写英文字母组成(不含标点符号)。
例如

扣分和刷题记录第01天

816.删节句子。

一个句子是一系列单词。列表中的单词由单个空格分隔,没有前导或尾随空格。每个单词仅由大写和小写英文字母组成(没有标点符号)。

比如‘Hello World’‘Hello’和‘Hello World Hello World’都是句子。

给你一句s?还有一个整数k?请你把s?截断?让被截断的句子只包含第一个k?文字。截断s?在句子之后。

解决方案类{

公众号:

字符串截断字符串(字符串s,int k){ 0

char * str 1=(char *)s . data();//字符串字符

char * result=strtok(str 1 ' ');//首次拆分

字符串输出=结果;//输出

for(int I=1;I k;I){ 0

结果=strtok(NULL ' ');//第二部分

output=output ' '结果;//输出叠加

}

返回输出;

}

};

执行时间:4 ms,在所有C提交中击败了37.72%的用户。

内存消耗:7.6 MB,击败所有C提交中5.26%的用户。

通过测试案例:72/72

模型答案

解决方案类{

公众号:

字符串截断字符串(字符串s,int k){ 0

int n=s . size();

int end=0,count=0;

for(int I=1;I=n;I) {//这里I比s[i]多1,I从1开始计算。

If (i==n || s[i]==' ') {//这里是遍历到底还是我数下一个空格是不是(因为最后一个字符后没有空格)

计数;

if(count==k){ 0

end=I;

打破;

}

}

}

返回s.substr(0,end);

//substr(a,b)从位置a返回长度为b的字符串。

//substr(a)返回位置A之后的所有剩余字符串(不包括A)

}

};

int main(){ 0

string s='你好我回来的每一个人';

溶液溶胶;

字符串s1=sol .截断呈现(s,5);

cout s1

系统(“暂停”);

返回0;

}

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/135145.html

(0)

相关推荐