目录
第1题:翻转单词顺序
第2题:顺时针打印矩阵
第3题:总持续时间可被 60 整除的歌曲
第4题:字符串的最大公因子
第5题:上升下降字符串
第6题:将数组分成和相等的三个部分
第7题:可被 5 整除的二进制前缀
第8题:去除重复字母
第9题:重构字符串
第10题:三角形的最大周长
力扣(LeetCode)定期刷题,每期10道题,业务繁重的同志可以看看我分享的思路,不是最高效解决方案,只求互相提升。
第1题:翻转单词顺序试题要求如下:
回答(C语言):
char* reverseWords(char* s){
// 去掉尾部的空格。最终至少留下一个空格,除非本身长度就为0
int n = strlen(s);
while(n > 0 && s[n-1] == ' ')
n--;
// 去掉头部的空格
int front = 0;
if(n > 0){
while(s[front] == ' ')
front++;
}
// 如果为空,返回
if( n - front == 0)
return "";
// 创建字符指针,长度大于等于实际长度
char *p = (char *)calloc(n + 1 - front, sizeof(char));
int index = 0; // 这是新字符串的下标
for( int i = n-1 , j = n-1; i >= front ; i--){
// 该写入单词了
if(i == front || (s[i] == ' ' && i != j) ){
int k = i + 1;
// 如果到头了,那头也应该写入
if(i == front)
k--;
for(; k
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?