文章

1

粉丝

0

获赞

1

访问

86

头像
字符串的单词颠倒 题解:
P5271
发布于2026年3月12日 15:59
阅读数 86

// 时间复杂度O(n), 空间复杂度O(1)
#include <stdio.h>
#include <string.h>
#include <ctype.h>

char str[1000005];
void revStr(int i, int j) {
    while (i < j) {
        char ch = str[i];
        str[i] = str[j];
        str[j] = ch;
        i++, j--;
    }
}
int main() {
    int len;
    scanf("%d", &len);
    getchar();
    fgets(str, len + 1, stdin);
    int i = 0, j = 0;
    while (1) {
        while (isalpha(str[j])) j++;
        revStr(i, j - 1);
        if (str[j] == '\0') break;
        while(str[j] == ' ') j++;
        i = j;
    }
    revStr(0, j - 1);
    printf("%s", str);

    return 0;
}
 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发