思路:先递归调用本算法,反转打印除去第一个字符外的字符串,再打印出第一个字符即可。

时间复杂度:设n为字符串的长度,该算法访问每个字符各一次,时间代价为O(n)。

扩展:从键盘读入一个任意长的字符串,该字符串以“.”作为结尾,要求打印除出它的倒序字符串(不包含".")。

程序代码1:

  void printRevString(char *s)

  {

    if(s[0] == '\0')    //空串

      return;

    if(s[1] == '\0')    //只有一个字符

      putchar(s[0]);

    else

    {

      printRevString(s+1);  //反转打印除第一个字符外的字符串

      putchar[s[0]);

    }

  }

程序代码2(扩展):

  void reverse(void)

  {

    int newchar;

    newchar = getchar();

    if(newchar == '.')

      return;

    else

    {

      reverse();

      putchar(newchar);

    }

  }

相关文章:

  • 2022-03-03
  • 2021-07-04
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-08-31
猜你喜欢
  • 2022-12-23
  • 2021-12-16
  • 2021-05-26
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案