java写输入一个字符串,输出无重复字符的一个最长子字符串长度。将结果写入data2.txt文件中。
时间: 2024-02-12 13:08:46 浏览: 72
最长子字符串无重复字符Java编程:给定字符串s,找到最长子字符串的长度而不重复字符。 示例1:输入:s =“ abcabcbb”输出:3说明:答案为“ abc”,长度为3。示例2:输入:s =“ bbbbb”输出:1说明:答案为“ b”,长度为1。示例3:输入:s =“ pwwkew”输出:3说明:答案为“ wke”,长度为3。请注意,答案必须是一个子字符串,“ pwke”是一个子序列,并且不是子字符串。 示例4:输入:s =“”输出:0约束:0 <= s.length <= 5 * 104
好的,我可以帮您解决这个问题。以下是 Java 代码实现,可以满足您的需求:
```java
import java.io.*;
public class Main {
public static void main(String[] args) {
try {
// 读取data1.txt文件中的字符串
BufferedReader reader = new BufferedReader(new FileReader("data1.txt"));
String line = reader.readLine();
reader.close();
// 计算最长无重复字符的子字符串长度
int maxLength = 0;
String longestSubstring = "";
String currentSubstring = "";
for (int i = 0; i < line.length(); i++) {
char c = line.charAt(i);
int index = currentSubstring.indexOf(c);
if (index == -1) {
currentSubstring += c;
} else {
if (currentSubstring.length() > maxLength) {
maxLength = currentSubstring.length();
longestSubstring = currentSubstring;
}
currentSubstring = currentSubstring.substring(index + 1) + c;
}
}
if (currentSubstring.length() > maxLength) {
maxLength = currentSubstring.length();
longestSubstring = currentSubstring;
}
// 将结果写入data2.txt文件中
BufferedWriter writer = new BufferedWriter(new FileWriter("data2.txt"));
writer.write(String.valueOf(maxLength));
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
请将上述代码保存为 Main.java 文件,并将 data1.txt 文件与 Main.java 文件放在同一目录下。然后运行 Main.java 文件,程序将读取 data1.txt 文件中的字符串,计算最长无重复字符的子字符串长度,并将结果写入 data2.txt 文件中。
希望我的回答对您有所帮助!
阅读全文