使用递归进行识别

时间:2017-06-04 02:42:27

标签: java recursion

我想知道如何解决一个问题,你需要通过使用递归从文件中读取文本(包含java代码)来正确缩进文本。原始输出将没有任何  标签。

这就是目标:enter image description here

这是代码,但我需要调整它以从文本文件中读取:

void indent( int m, int n )
{
  System.out.println( m ); // Forward Printing

  if ( m < n )
  {
    indent( m + 1, n );
    System.out.println( m ); // Backward Printing
  }
}

1 个答案:

答案 0 :(得分:0)

好的,算法可以像......

function indent(theText, indentCharCount) {
   for each character of the text...
      if it is an end-of-line character...
         concatenate spaces to return string using indentCharCount
      else if it is a '{' character...
         scan ahead through characters to find matching '}' character
         recursively call indent() function passing...
            characters between { and } for 'theText' param
            indentCharCount+2 for 'indentCharCount' param
         concatenate return value of indent() to return string
         set loop index so that the next character will be the matched '}'
      else (it's some other character)
         concatenate character to return string
   return the concatenated string
}

我不想写出Java中的所有代码。如果你正在做家庭作业,我宁愿你学点东西!但这是一个基本的递归算法,我认为适合你的问题。