zoukankan      html  css  js  c++  java
  • 算法提高----递归倒置字符数组

    问题描述
      完成一个递归程序,倒置字符数组。并打印实现过程
      递归逻辑为:
      当字符长度等于1时,直接返回
      否则,调换首尾两个字符,在递归地倒置字符数组的剩下部分
    输入格式
      字符数组长度及该数组
    输出格式
      在求解过程中,打印字符数组的变化情况。
      最后空一行,在程序结尾处打印倒置后该数组的各个元素。
    样例输入
    Sample 1
    5 abcde
    Sample 2
    1 a

    样例输出

    Sample 1
    ebcda
    edcba
    edcba
    Sample 2
    a

     

    #include <stdio.h>
    #include <stdlib.h> 
    
    void swap(char *str1,int start,int end){
        char temp;
        temp = str1[start];
        str1[start] = str1[end];
        str1[end] = temp;
    }
    
    void Reverse_And_Print(char *str1,int start,int end){
        if(start == end){
            printf("%s
    ",str1);
            return;
        }
        else{
            swap(str1,start,end);
            printf("%s
    ",str1);
            Reverse_And_Print(str1,start+1,end-1);
        }
    }
    
    int main(){
        char str[7];
        char *str1;
        int num,num1;
        while(scanf("%s",str)!= EOF){
            scanf("%d",&num); 
            scanf("%d",&num1);
            str1 = (char *)malloc(sizeof(char)*(num1+1));
            scanf("%s",str1);
            printf("%s %d
    ",str,num);
            Reverse_And_Print(str1,0,num1-1);
        }
        return 0;
    }

    //注:官网给的测试数据和样例说明冲突,因而提交上去会显示Runtime Error

  • 相关阅读:
    使用redisList的做同步队列处理数据
    java 运行服务异常,进入服务分析工具 arthas
    springboot2 搭建webstock 简单例子
    Lambda 表达式 例子。自己看。
    简易的redis分布式锁 RedisLockUtil
    读书笔记
    Kernel panic
    golang 接口
    golang 方法
    ack oscillate
  • 原文地址:https://www.cnblogs.com/emptyCoder/p/6234559.html
Copyright © 2011-2022 走看看