7-6 句子反转

给定一行句子,每个词之间用空格隔开,要么是全小写英文单词,要么是全大写英文单词,要么是自然数。

要求将这些单词倒序输出。而且对于每个单词,如果是小写词,应当转为大写;如果是大写词,应当转为小写;如果是自然数,应该倒转输出。

举一个例子:

we choose TO go 2 the 123 moon

程序应当输出:

MOON 321 THE 2 GO to CHOOSE WE

输入格式

仅一行,即需要反转的句子。

输出格式

仅一行,表示程序对句子的处理结果。

说明/提示

样例解释

首先应当按单词逆序,即:

moon 123 the 2 go TO choose we

小写变大写、大写变小写、倒转自然数之后,得到最终结果:

MOON 321 THE 2 GO to CHOOSE WE
数据规模与约定

对于 100% 的数据,句子中包含的单词数量不超过 1000,每个单词长度不超过 6。

输入样例:

we choose TO go 2 the 123 moon

输出样例:

MOON 321 THE 2 GO to CHOOSE WE

#include <stdio.h>
#include <string.h>
main()
{
    char a[1000],b,c,k[1000],h,L=0;
    int l,i,j,n=0,M=0,g;
    gets(a);
    l=strlen(a);
    for(i=0;i<l;i++)
    {
        if(a[i]>='a'&&a[i]<='z')
        {a[i]=a[i]-32;
        }
        else if(a[i]>='A'&&a[i]<='Z')
            a[i]=a[i]+32;
    }
    for(i=0;i<=l;i++)
    {
        if(a[i]==' ')
            M++;
        else break;
    }
    for(i=l-1;i>=M;i--)
    {
        if(a[i]!=' ')
        {
            k[n]=a[i];
            n++;
        }
        else if(n!=0)
        {if(k[n-1]>='0'&&k[n-1]<='9')
        {
            for(h=0;h<n;h++)
                printf("%c",k[h]);
            printf(" ");
            n=0;
            L=1;
        }
            else {for(h=n-1;h>=0;h--)
            printf("%c",k[h]);
              printf(" ");
              n=0;
                  L=1;
              }
        }
    }
    if(k[n-1]>='0'&&k[n-1]<='9')
            for(h=0;h<n;h++)
            
                printf("%c",k[h]);
    else
    for(h=n-1;h>=0;h--)
            printf("%c",k[h]);

### 关于洛谷 B3640 句子反转问题 对于洛谷上的特定编号为B3640的句子反转问题,虽然直接针对此题目的具体描述未给出,但从一般性的字符串操作以及常见编程竞赛中的句子反转类题目出发可以推测该题可能涉及的内容。 #### 题目分析与假设 通常情况下,“句子反转”的定义是指给定一个单词组成的句子,要求按照一定规则翻转这些单词的位置。常见的变体包括但不限于: - 单词内部保持不变,仅改变各单词之间的顺序; - 同时逆转整个句子字符序列及其内含单词的方向; 考虑到洛谷作为面向算法爱好者的在线评测系统,此类题目往往还会附加额外约束条件或特殊输入情况处理的要求[^1]。 #### Python实现示例 下面提供了一种基于Python语言的基础解决思路,适用于大多数简单的句子反转场景: ```python def reverse_sentence(sentence): words = sentence.split() # 将原句按空格分割成列表形式 reversed_words = ' '.join(reversed(words)) # 列表逆序排列后再拼接为空格分隔的新字符串 return reversed_words if __name__ == "__main__": test_input = "hello world here" result = reverse_sentence(test_input) print(f"Original: {test_input}") print(f"Reversed: {result}") ``` 这段代码实现了基本功能:接收任意长度的英文句子并返回其中各个单词位置颠倒后的版本。然而请注意实际比赛中可能会遇到更复杂的需求,比如保留原始标点符号分布、支持多行文本等特性[^2]。 为了确保程序能够应对各种边界状况(例如连续空白符的存在),建议进一步优化上述逻辑结构,并仔细阅读官方文档说明以获取最准确的任务需求指导[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

此约爱彤无期

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值