C语言 | Leetcode C语言题解之第151题反转字符串中的单词

题目:

题解:

cpp 复制代码
void myResverse(char* s,int start,int end){
    while(start<end){
        char temp = s[start];
        s[start] = s[end];
        s[end] = temp;
        start++;
        end--;
    }
}
char* reverseWords(char* s) {
    int start = 0;
    int end = strlen(s)-1;
    myResverse(s,start,end);
    if(s[0]==' '){
        int i = 0;
        while(s[i]==' '){
            i++;
        }
        int j = 0;
        while(s[i]!='\0'){
            s[j] = s[i];
            i++;
            j++;
        }
        s[j] = '\0';
    }
    int check = 0;
    while(s[check]!='\0'){
        check++;
    }
    if(s[check-1]==' '){
        int o = check - 1;
        while(s[o]==' '){
            o--;
        }
        s[o+1] = '\0';
    }
    for(int k = 0;k<strlen(s);k++){
        if(s[k]==' '&&s[k+1]==' '){
            int i = k;
        while(s[i]==' '){
            i++;
        }
        int j = k+1;
        while(s[i]!='\0'){
            s[j] = s[i];
            i++;
            j++;
        }
        s[j] = '\0';
        }
    }
    int slow = 0;
    for(int u = 0;u<=strlen(s);u++){
        if(s[u]==' '||s[u]=='\0'){
            myResverse(s,slow,u-1);
            slow = u+1;
        }
    }
    return s;
}
相关推荐
Cyrus_柯16 分钟前
网络编程(数据库:SQLite)
linux·c语言·数据库·sqlite
水饺编程1 小时前
MFC 第一章概述
c语言·c++·windows·mfc
緈福的街口1 小时前
【leetcode】36. 有效的数独
linux·算法·leetcode
Wangshanjie_981 小时前
【C语言】-指针01
c语言
秃然想通2 小时前
C语言——深入解析字符串函数与其模拟实现
c语言·开发语言
黑学生3 小时前
2024蓝桥杯C/C++ B组国赛
c语言·c++·蓝桥杯
whoarethenext4 小时前
使用 C/C++ 和 OpenCV 进行模板匹配
c语言·c++·opencv
CodeWithMe5 小时前
【C/C++】long long 类型传参推荐方式
c语言·开发语言·c++
NULL指向我7 小时前
C语言数据结构笔记6:使用宏和指针来设置和操作嵌套在结构体中的联合体数组的特定位
c语言·数据结构·笔记
whoarethenext7 小时前
使用 C/C++、OpenCV 和 Libevent 构建联网人脸识别考勤系统 [特殊字符]‍[特殊字符]
c语言·c++·opencv