扣分和刷题记录第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