华为机试每日一练--第十题: 句子逆序

简介: 华为机试每日一练--第十题: 句子逆序

练习题入口

问题描述

将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I”

所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符

数据范围:输入的字符串长度满足 1≤n≤1000

注意本题有多组输入

输入描述:

输入一个英文语句,每个单词用空格隔开。保证输入只包含空格和字母。

输出描述:

得到逆序的句子

解题分析

这道题跟 字符串反转一样,我们首先要解决的问题还是怎么接收。因为这次输入的是句子,而句子里面有空格,所以我们就不能用scanf接收了,要用gets()。


这道题要求把句子中的单词反向输出,所以我们可以先把句子全体逆序,然后在把单个的单词逆序,这样就解决问题啦(翻转的方法跟字符串反转一样,这里我就不加赘述了)


代码实现

#include<stdio.h>
void reverse(char* left,char* right)
{
    while(left<right)
    {
        char tmp = *left;
        *left = *right;
        *right =tmp;
        left++;
        right--;
    }
}
int main()
{
    char arr[1000];
    gets(arr);
    int len = strlen(arr);
    char* left=arr;
    char* right=arr;
    right+=len-1;
    reverse(left,right);
    char* start = arr;
    char* end = arr;
    while(*end !='\0')
    {
        while(*end!=' '&&*end!='\0')
        {
            end++;
        }
    reverse(start,end-1);
    start = ++end;
    }
    printf("%s",arr);
   return 0; 
}
相关文章
|
5月前
|
算法
力扣经典150题第二十一题:反转字符串中的单词
力扣经典150题第二十一题:反转字符串中的单词
47 0
|
5月前
|
算法
【经典LeetCode算法题目专栏分类】【第11期】递归问题:字母大小写全排列、括号生成
【经典LeetCode算法题目专栏分类】【第11期】递归问题:字母大小写全排列、括号生成
|
6月前
|
Python Rust Java
Rust每日一练(Leetday0020) 最后单词的长度、螺旋矩阵II、排列序列
Rust每日一练(Leetday0020) 最后单词的长度、螺旋矩阵II、排列序列
110 0
Rust每日一练(Leetday0020) 最后单词的长度、螺旋矩阵II、排列序列
|
12月前
|
算法
代码随想录算法训练营第八天 | LeetCode 344.反转字符串、541. 反转字符串II、剑指Offer 05.替换空格、151.翻转字符串里的单词、剑指Offer58-II.左旋转字符串
代码随想录算法训练营第八天 | LeetCode 344.反转字符串、541. 反转字符串II、剑指Offer 05.替换空格、151.翻转字符串里的单词、剑指Offer58-II.左旋转字符串
58 0
|
算法 索引
代码随想录算法训练营第八天 | 344.反转字符串541. 反转字符串II 剑指Offer 05.替换空格151.翻转字符串里的单词剑指Offer58-II.左旋转字符串
代码随想录算法训练营第八天 | 344.反转字符串541. 反转字符串II 剑指Offer 05.替换空格151.翻转字符串里的单词剑指Offer58-II.左旋转字符串
|
算法 C语言
PTA 数据结构与算法题目集(中文)6-1 单链表逆转(20)
L是给定单链表,函数Reverse要返回被逆转后的链表。 裁判测试程序样例:
108 0
|
C语言
LeetCode刷题集(四)(LeetCode2114.句子中的最多单词数)
LeetCode刷题集(四)(LeetCode2114.句子中的最多单词数)
56 0
|
测试技术
LeetCode刷题集(六)(LeetCode58.最后一个单词长度)
LeetCode刷题集(六)(LeetCode58.最后一个单词长度)
59 0
华为机试每日一练--第四题:字符串最后一个单词的长度
计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾)
华为机试每日一练--第四题:字符串最后一个单词的长度
华为机试每日一练--第九题: 字符串反转
华为机试每日一练--第九题: 字符串反转
华为机试每日一练--第九题: 字符串反转