gpt4 book ai didi

java - 分析java中的字符串的格式A^nB^n

转载 作者:行者123 更新时间:2023-12-02 05:41:15 24 4
gpt4 key购买 nike

我有一串带有 As 和 B 的字符,我需要对其进行分析以查找语言 A^nB^n。我可以使用下面的代码在大多数情况下工作,但是当有一个字母不是“A”或“B”时,它仍然可能返回 true,例如:AABACABAA 不应该为 true,但它说它是 true。 AABB 为真; AABBAABB 不是真的。我必须使用堆栈并且不允许使用计数。

public static boolean isL2(String line){
// set up empty stacks
Stack L2Stack = new Stack();

// initialize loop counter
int i = 0;
int n = line.length();

/* Push all 'A's to a_stack */
while ((i < line.length()) && (line.charAt(i) == 'A')) {
char ch = line.charAt(i);
L2Stack.push(ch);
i++;
}

/* Pop an 'A' for each consecutive 'B' */
while ((i < line.length()) && (line.charAt(i) == 'B')) {
if (!L2Stack.empty()){
L2Stack.pop();
i++;
}
else
return false;
}

if (i == n && !L2Stack.empty()){
return false; // more As than Bs
}
if (i != n && L2Stack.empty()){
return false; //more Bs than As
}else
return true;

}

最佳答案

if (i != n && L2Stack.empty()) {
return false; //more Bs than As
}

应该是

if (i != n) {
return false;
}

因为如果还没有读完所有字符,则无论堆栈是否为空,都无法返回 true。

我假设 AAABBBA 应该返回 false。

该更改还将处理非法字符。

关于java - 分析java中的字符串的格式A^nB^n,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24497204/

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