简单的算法编程题-任意段落按照单词逆序输出

Posted ksiwnhiwhs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单的算法编程题-任意段落按照单词逆序输出相关的知识,希望对你有一定的参考价值。

把这个问题抛给温州皮鞋厂老板,老板直接就说这个题目的本意是让你提出stack的解决方案

??what?stack?too low!

??因为这么个问题还要实现一个stack有点场面大了,事实上谁不知道你把一个个单词push进去,然后再pop出来不就好了吗?所以说stack方案太通用,不足挂齿。…周末没事干时折腾点此类问题,没有错,错在拉开蚊帐睡觉时吵醒疯子和小小,事情偶尔会变严重。

??另外,使用C语言完成和使用Java完成完全不同,Java调用现成的class会非常简单,复杂度完全隐藏在了内部。此外,C语言是否可以用strtok也必须有所约束。以下是我的方案,非常好玩,像我这种不会编程的人,请不要笑我。因为我没有用strlen,没有用strcpy,没有用malloc…:

#include <stdio.h>
#include <stdlib.h>

int ok(char c)
{
        if ( (c <= 90 && c >= 65) || (c <=122 && c >= 97) )
                return 1;
        return 0;
}

int main(int argc, char **argv)
{
        char orig[] = {‘i‘, ‘ ‘, ‘a‘, ‘m‘, ‘ ‘, ‘a‘, ‘ ‘, ‘s‘, ‘t‘, ‘u‘, ‘d‘, ‘e‘, ‘n‘, ‘t‘, ‘,‘, ‘a‘, ‘n‘, ‘d‘, ‘ ‘, ‘y‘, ‘o‘, ‘u‘, 0};

        char *buf = orig, *tbuf = orig;
        int i = 0, j = 0;
    // 获取长度
        while (*tbuf++ != 0) j++;

    // 前后逆序交换
        for (j--; j > i; i++, j--) {
                char c = orig[i];
                orig[i] = orig[j];
                orig[j] = c;
        }

    // 遍历
        while (*buf != 0) {
                int k = 0, p = 0;
                char *temp = buf;
                while (ok(*(buf++))) {
                        k++;
                }
        // 按照单词逆序
                for (k--; p < k; p++, k--) {
                        char c = temp[p];
                        temp[p] = temp[k];
                        temp[k] = c;
                }
        }
    // 打印结果
        printf("%s
", orig);
}
  • 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

看似个鸳鸯蝴蝶,不应该的年代。嗯?有啥不应该?

??不多说。

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

以上是关于简单的算法编程题-任意段落按照单词逆序输出的主要内容,如果未能解决你的问题,请参考以下文章

程序员面试50题—翻转句子中单词的顺序[算法]

片段(Java) | 机试题+算法思路+考点+代码解析 2023

C语言编程题:输入五个整数,再按相反顺序输出的程序? 谢谢

编程将任意一个4位正整数逆序输出,要求不输出前导0

网易云课堂_C语言程序设计进阶_第五周:递归与简单算法:递归搜索二分搜索简单排序_1逆序输出的数列

一道编程题:求逆序对的个数