利用递归实现对输入字符串的倒序输出

   对输入的字符串进行倒序输出,通常情况下会使用栈,将输入的字符依次入栈,利用栈先进后出的原理,依次从栈顶弹出后输入的字符并输出。其实还可以利用递归实现同样的目的,这样做不需要申请另外的空间。

代码如下:

public class daoxu {


public static void main(String[] args) throws IOException {
       InputStream is = System.in;
       daoxu(is);
       
}


private static void daoxu(InputStream is) throws IOException {
int c;
if((char)(c = is.read()) != '#'){
daoxu(is);
System.out.print((char)c);
is.close();
}
}
}


输入:abcdefg#

输出:gfedcba

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用以下递归函数实现字符串s倒序输出: ``` void reverseString(string s) { if (s.length() == ) { return; } else { reverseString(s.substr(1)); cout << s[]; } } ``` 该函数首先检查字符串s是否为空,如果为空则直接返回。否则,它将递归调用自身,传入s的子字符串(从第二个字符开始),直到子字符串为空。然后,它将打印出s的第一个字符。这样,函数将逆序输出字符串s。 例如,如果输入字符串为"hello",则函数将输出"olleh"。 ### 回答2: 要利用函数递归实现字符串s倒序输出,可以按照以下步骤进行: 1. 定义一个递归函数,例如reverse_str,该函数接收一个字符串作为参数。 2. 在函数的基本情况下,当字符串s为空时,直接返回空字符串。 3. 对于其他情况,可以将字符串s分割成首字符c和剩余部分rest_str。 4. 调用递归函数reverse_str,将剩余部分rest_str作为参数,获取其倒序输出字符串reverse_rest。 5. 将首字符c与reverse_rest连接起来,即为最终的倒序输出字符串。 6. 返回倒序输出字符串。 下面是一个示例的代码实现: ```python def reverse_str(s): if s == "": return "" else: c = s[0] rest_str = s[1:] reverse_rest = reverse_str(rest_str) return reverse_rest + c # 测试 s = "Hello, World!" reversed_s = reverse_str(s) print(reversed_s) # 输出:!dlroW ,olleH ``` 在这个示例中,函数reverse_str将"Hello, World!"作为参数,首先将其分割为首字符"H"和剩余部分"ello, World!",然后通过递归调用reverse_str函数获取剩余部分的倒序输出字符串"!dlroW ,olle",最后将首字符"H"与倒序输出字符串连接起来,得到最终的结果"!dlroW ,olleH"。 ### 回答3: 使用递归实现字符串倒序输出的方法如下: 1.编写一个递归函数`reverseString()`。该函数接受一个字符串作为参数。 2.在该函数中,首先检查字符串是否为空或只有一个字符。如果是的话,直接返回该字符串。 3.如果字符串长度大于1,那么将字符串的最后一个字符与剩余部分进行交换,并将剩余部分传递给递归函数`reverseString()`。 4.递归函数会返回倒序后的剩余部分字符串。 5.在函数`reverseString()`中,将最后一个字符与递归函数的返回值拼接起来,并返回这个拼接后的字符串。 6.最后,调用该递归函数,传入需要倒序输出字符串,即可得到倒序后的字符串。 以下是一个实现该功能的示例代码: ```python def reverseString(s): if len(s) <= 1: return s else: return s[-1] + reverseString(s[:-1]) # 测试代码 s = "Hello, World!" reversed_s = reverseString(s) print(reversed_s) # 输出 "!dlroW ,olleH" ``` 上述代码中的`reverseString()`函数通过递归的方式不断将字符串最后一个字符与剩余部分交换位置,最终实现了将字符串倒序输出的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值