【问题标题】:How to write a recursive method that takes a string as an argument and returns that string turned inside out?如何编写一个将字符串作为参数并返回该字符串的递归方法?
【发布时间】:2012-04-03 13:26:54
【问题描述】:

您可以假设参数字符串不为空,不为空,并且不包含任何空格或标点符号。

这是我到目前为止的代码,我认为您首先可能必须将其反转,因此我尝试反转至少一半,但显然您可以说我不知道​​我在做什么以及您将如何编写此代码递归。

public static String reverseString(String s) {
    return new (StringBuffer(s).reverse().toString()/2);
}

SO 示例:如果字符串是“abcde”,它应该返回“cbdae” 如果字符串是“pq”,则返回“pq” 如果字符串是“321123”则返回“112233”

我该如何实现?

【问题讨论】:

  • 这听起来像是家庭作业。如果是这样,您应该将其标记为这样。
  • @Oli Charlesworth:从他的“reverse”和“/2”来看,可能ABCDEF变成了CBAFED?
  • 你需要对递归函数做一些研究。但是,即使在您这样做之前,您也需要考虑如何在纸上一步一步地执行此操作,这将使解决方案更容易看到,

标签: java


【解决方案1】:

在编写递归方法时,需要注意以下2个方面

  • 终止逻辑
  • 重复逻辑

对于您当前的问题,终止情况将是字符串为空或只有 1 个字符。在这两种情况下,返回的值都是字符串本身。

您的情况的重复逻辑是,您的字符串的第一个字母需要在字符串其余部分的反转之后附加。

【讨论】:

  • 你为什么要给 OP 答案?从帖子来看,这显然是家庭作业。
  • 我知道。我发布后看到了cmets。已删除答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-04
  • 1970-01-01
  • 1970-01-01
  • 2014-05-07
相关资源
最近更新 更多