gpt4 book ai didi

java - 使用 BufferedReader 进行递归

转载 作者:行者123 更新时间:2023-12-01 13:07:29 25 4
gpt4 key购买 nike

在我的计算机科学课上,我们遇到了一个我似乎无法解决的问题。问题如下。我们还必须使用洪水填充算法

Create a program that reads a text file containing a 15 x 15 grid, which represents human cells. The cells are depicted with a plus sign “+” if they are healthy cells, and a minus sign “-” if they are cancerous. The outside rows and columns of the grid will contain only plus signs “+”." Basically whats going to happen is you need to use recursion to check every item in the txt file and if the character is a "-" then you change it to " " and if the character is "+" you leave it as "+".

这是我目前拥有的代码。到目前为止,我已将文本文件放入数组列表中,然后创建了一个字符串数组。我不确定如何检查每个值以查看它们是否是“-”,因为一旦我能够做到这一点,递归应该相当简单。任何帮助将不胜感激!

public class Cancer {

public static void main(String[] args) throws IOException {

String[][] grid = new String[14][14];

BufferedReader in = new BufferedReader(new FileReader("location.txt"));
String str=null;
ArrayList<String> lines = new ArrayList<String>();
while((str = in.readLine()) != null){
lines.add(str);
}
String[] linesArray = lines.toArray(new String[lines.size()]);
}
}

最佳答案

首先,我认为您最好使用字符网格,但让我们继续使用字符串方法:

当您声明数组时,您也声明了其大小,因此具有 15 个元素的字符串数组将被声明为 new String[15]

我真的不明白为什么你需要一个二维字符串数组,因为一个字符串是一整行(行)。这是程序的稍微修改版本,它将文件的行读入一维字符串数组,然后循环遍历每行中的每个字符并查找“癌症”(迭代):

import java.util.*;
import java.io.*;

public class Cancer {

public static void main(String[] args) throws IOException {

String[] grid = new String[15];

BufferedReader in = new BufferedReader(new FileReader("location.txt"));
String str=null;
ArrayList<String> lines = new ArrayList<String>();
int i = 0;
while((str = in.readLine()) != null){
grid[i] = str;
i++;
}

for (int x = 0; x < grid.length; x++) {
String row = grid[x];
for (int y = 0; y < row.length(); y++) {
if(row.charAt(y) == '-') {
System.out.println("Cancer found at " + x + "," + y);
}
}
}
}
}

希望这能让您了解如何检查您的输入。String 和 charAt 方法没有任何问题(因为“网格”变成一维),它只是使实际的“算法”的可移植性稍差一些。正如其他人提到的,使用递归解决这个问题有点奇怪。一种方法是利用网格坐标进行递归调用。另一种选择是“砍掉”数组/字符串。

关于java - 使用 BufferedReader 进行递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23162153/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com