• [PAT练级笔记] 07 Basic Level 1009


    乙级的题目训练主要用来熟悉编程语言的语法和形成良好的编码习惯和编码规范。从小白开始逐步掌握用编程解决问题。

    PTA 乙级 Basic Level 1009

    问题分析

    题目给定一句英语, 要输出这句英语中所有单词的顺序颠倒后的内容.
    我们先来明确两个概念(如果是在业务开发中, 那么就是明确我们本次功能涉及的对象以及功能概念)

    “单词”

    如果判断句子中的某个单词?
    当我们说"Hello World Here I Come"中包含5个单词"Hello", “World”, “Here”, “I”, “Come”
    我们其实在说, 以空格分隔的五个字符串。
    比如"sadhacias sadjioancio asjdioajd"这里有三个单词: “sadhacias”, “sadjioancio”, “asjdioajd”
    尽管你可能不认识这三个单词, 或者甚至他们在英语字典中找不到, 但是在这个题目设定下, 就是我们所谓的"单词"

    “顺序颠倒”

    “Hello”, “World”, “Here”, “I”, "Come"在句子中从左到右出现的次序是: 1, 2, 3, 4, 5
    顺序颠倒则意味着这5个单词在输出结果中出现的次序要是5, 4, 3, 2, 1

    步骤描述

    厘清我们要逻辑要涉及的对象以及要输出的结果形式之后, 我们可以将步骤描述如下:

    1. 找出语句中的单词
      • 找到空格, 两个空格之间的部分, 第一个空格和句首之间的部分, 最后一个空格到句尾的部分, 认为是一个单词
    2. 标记五个单词的次序
    3. 颠倒五个单词的次序
    4. 按照颠倒后的次序以空格连接各个单词, 连接后的内容作为答案输出

    将步骤以更贴近编程语言的形式描述, 如下:

    1. 对给定的英文句子进行循环:

      • 如果找到空格, 则该空格与上一个空格之间的部分是一个单词
        • 如果找到的空格是第一个空格, 则从开头到这个空格之前一个字符的内容是一个单词
      • 循环结束后, 最后一个出现的空格之后的第一个字符到句子末尾的部分是一个单词
    2. 次序指单词出现的先后, 所以按照循环过程中先找到先存, 存完之后从存储的那组字符串末尾开始输出, 使得输出顺序和查找/出现/存储顺序相反, 即可达到颠倒次序的目的

    (也可以不用存, 直接从句子后面开始循环, 找到之后当即输出, 由于输出之后不会再使用到这个单词, 也就不需要存储; 【原则: 数据存储是为了数据使用】)

    完整提交代码

    /*
    问题分析:
    题目给定一句英语, 要输出这句英语中所有单词的顺序颠倒后的内容.
    我们先来明确两个概念(需要在业务开发中, 那么就是明确我们本次功能涉及的对象以及功能概念)
    "单词"
    如果判断句子中的某个单词?
    当我们说"Hello World Here I Come"中包含5个单词"Hello", "World", "Here", "I", "Come"
    我们其实在说, 以空格分隔的五个字符串。
    比如"sadhacias sadjioancio asjdioajd"这里有三个单词: "sadhacias", "sadjioancio", "asjdioajd"
    尽管你可能不认识这三个单词, 或者甚至他们在英语字典中找不到, 但是在这个题目设定下, 就我们所谓的"单词"
    
    "顺序颠倒"
    "Hello", "World", "Here", "I", "Come"在句子中从左到右出现的次序是: 1, 2, 3, 4, 5
    顺序颠倒则意味着这5个单词在输出结果中出现的次序要是5, 4, 3, 2, 1
    
    厘清我们要逻辑要涉及的对象以及要输出的结果形式之后, 我们可以将步骤描述如下:
    1. 找出语句中的单词
        - 找到空格, 两个空格之间的部分, 第一个空格和句首之间的部分, 最后一个空格到句尾的部分, 认为是一个单词
    2. 标记五个单词的次序
    3. 颠倒五个单词的次序
    4. 按照颠倒后的次序以空格连接各个单词, 连接后的内容作为答案输出
    
    
    将步骤以更贴近编程语言的形式描述, 如下:
    1. 对给定的英文句子进行循环:
        - 如果找到空格, 则该空格与上一个空格之间的部分是一个单词
            - 如果找到的空格是第一个空格, 则从开头到这个空格之前一个字符的内容是一个单词
        - 循环结束后, 最后一个出现的空格之后的第一个字符到句子末尾的部分是一个单词
    
    2. 次序指单词出现的先后, 所以按照循环过程中先找到先存, 存完之后从存储的那组字符串末尾开始输出,
        使得输出顺序和查找/出现/存储顺序相反, 即可达到颠倒次序的目的
    (也可以不用存, 直接从句子后面开始循环, 找到之后当即输出, 由于输出之后不会再使用到这个单词, 也就不需要存储; 【原则: 数据存储是为了数据使用】)
    
    
    */
    
    # include
    
    int main(){
        char content[100];
        gets(content);
    
        int content_length = 0;
        for (; content[content_length];){
            content_length ++;
        }
    
        int end_of_word = content_length;
        int start_of_word = 0;
        for (int i = content_length - 1; i >= 0; i--){
            if (content[i] == ' '){
                start_of_word = i + 1;
                for (int j = start_of_word; j < end_of_word; j++){
                    printf("%c", content[j]);
                }
                printf(" ");
                end_of_word = i;
            }
        }
    
        for (int j = 0; j < end_of_word; j++){
            printf("%c", content[j]);
        }
    
        printf("\n");
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
  • 相关阅读:
    Springboot 实践(20)负载均衡器Ribbon
    springboot项目中的dto的参数校验及统一异常处理的简单使用
    Redis 数据类型之列表
    农业气象站的工作原理
    OpenStack集群部署——计算节点neutron节点部署(三)
    Dragonframe是一个全功能的动画制作工具,专为满足电影,广播电视和电影的要求设计。
    代码随想录算法训练营第23期day2 | 977.有序数组的平方 、209.长度最小的子数组、59.螺旋矩阵II
    进程地址空间详解
    大数据之Hudi数据湖_基本概念_文件布局_文件管理 & 基本概念_索引_的原理_索引选项_全局索引与非全局索引---大数据之Hudi数据湖工作笔记0007
    window系统 安装 nvm 详细步骤
  • 原文地址:https://blog.csdn.net/qq_41785288/article/details/126234842