zoukankan      html  css  js  c++  java
  • 数组中的环状串

    问题:在一个字符数组中,在不改变数组中元素各位置的情况下,将数组中的字符串由小到大输出。

    程序分析:在这个程序中,先遍历直到找到后一个字符比前一个字符小的元素,less函数就立马返回true,然后让ans+1,main函数中的第一个for循环继续进行迭代执行less函数,知道将ans的值加到

    之前寻找到的哪个“后一个字符”的下标,然后继续迭代,这时比较的就是"后一个字符"后面还有没有比它还小的字符了,如果有,会将ans的值一直加到该最小字符的下标。

    #define _CRT_SECURE_NO_WARNINGS
    #include<stdio.h>
    #include<string.h>
    #define maxn 105
    //环状串s的表示法p是否比表示法q的字典序小
    int less(const char* s, int p, int q) {
        int n = strlen(s);
        for (int i = 0; i < n; i++)    //我做的实验是for语句下面的return 0语句只有在for语句执行完之后才会执行。哪怕if语句不满足条件也不会执行下面的return语句。
            if (s[(p + i) % n] != s[(q + i) % n])
                return s[(p + i) % n] < s[(q + i) % n];
        return 0; //相等
    }
    int main() {
        int T;
        char s[maxn];
        scanf("%d", &T);
        while (T--) {
            scanf("%s", s);
            int ans = 0;
            int n = strlen(s);
            for (int i = 1; i < n; i++)
                if (less(s, i, ans)) ans = i;
            for (int i = 0; i < n; i++)
                putchar(s[(i + ans) % n]);
            putchar('
    ');
        }
        getchar();
        getchar();
    }
  • 相关阅读:
    关于MapReduce中自定义分区类(四)
    关于MapReduce中自定义分组类(三)
    UiAutomator2.0
    Java_集合框架
    Python爬取指定重量的快递价格
    Java_面向对象
    Java_异常以及处理
    Java_File类
    Java_Scanner和System类
    Java_Runtime&Process&ProcessBuilder
  • 原文地址:https://www.cnblogs.com/sjxbg/p/6004142.html
Copyright © 2011-2022 走看看