嘿,伙计们,我有一个任务,我应该读取用户输入的字符串,并使用堆栈检查平衡符号。因此,如果字符串是“{[()]}”,那么字符串是平衡的,因为每个开口都有一个闭合。我的想法是使用一个循环来检查给定字符串中的每个字符,如果该字符串有一个开瓶器,比如“([{”那么它确实是stack.push(char),如果该字符是一个closer”)]}”,那么我需要使用stack。pop(char)。我遇到的问题是,我的教授强迫我使用字符串方法,而我在网上找到的任何帮助都是使用布尔方法,如果有人能在这里帮助我,我将不胜感激。
我知道我的代码不起作用,但你至少可以知道我的逻辑是什么。
进口java.util.*;
公共类平衡符号{
public static String balancedSymbols(String lineToCheck){ //this is the method that im being forced to use
Stack<String> stack = new Stack<String>();
for (int i = 0; i<lineToCheck.length(); i++){
char x = '(';
char y = '{';
char z = '[';
char a;
a = lineToCheck.charAt(i);
if (a == x){
stack.push(a);
}
if (a == y){
stack.push(a);
}
if (a == z){
stack.push(a);
}
}
}
}
显然,除了用不同的符号,我也会用同样的方法来弹出。
Create empty stack
==========================
private static boolean isValideEx(String str) {
Stack<Character> st=new Stack<Character>();
if(str == null || str.length() == 0)
return true;
for (int i = 0; i < str.length(); i++) {
if(str.charAt(i)==')'){
if(!st.isEmpty() && st.peek()=='('){
st.pop();
}else{
return false;
}
}else if(str.charAt(i)==']'){
if(!st.isEmpty() && st.peek()=='['){
st.pop();
}else{
return false;
}
}else if(str.charAt(i)=='}'){
if(!st.isEmpty() && st.peek()=='{'){
st.pop();
}else{
return false;
}
}else{
st.push(str.charAt(i));
}
}
System.out.println(" sy "+st);
if(st.isEmpty())
return true;
else
return false;
}
逻辑是这样的:
创建空堆栈。(你已经做到了)。
穿过绳子。
对于遇到的每个字符ch
,如果ch为}]),堆栈为空,则返回false
else
如果它是( { [在堆栈中推送它
如果ch
是) } ]检查堆栈顶部。
如果堆栈顶部等于相应的打开括号,从堆栈弹出,否则返回false。
如果您已经到达字符串的结尾,堆栈不是空的,返回false
否则返回true。
返回false背后的原因是我们没有相应的匹配括号。这些是额外的括号。
首先尝试自己实现它。如果你面临任何问题,请予以评论。。我很乐意帮忙。
有问题请评论。
我得写Python补充函数: 对于递归检查输入字符串是否具有平衡括号的函数: 我不能使用堆栈。当输入字符串为空时,当括号开始和结束时,我必须包含一个选项(以及一个小提示,不是每个结束括号我们都应该做出相同的反应),并包含对括号以外字符的反应。补充函数必须返回未处理的文本和以前的结果。 我有代码,遗憾的是它并不适用于我找到的每个例子: 在测试中,错误的答案在 和 我试图从 pythontutor.c
我有一些具体的任务。我们有像“(()[] 导入java.util.栈; 公开课考试{ }
问题内容: 我有一个数据集,其中的类是不平衡的。类别为“ 1”或“ 0”,其中类别“ 1”:“ 0”的比率为5:1。如何在带有随机森林的sklearn中计算每个类别的预测误差以及相应的重新平衡权重,类似于以下链接:http : //www.stat.berkeley.edu/~breiman/RandomForests/cc_home.htm#平衡 问题答案: 您可以将样本权重参数传递给随机森林拟
输入=堆栈数 但是你只能弹出输入,你不能推到它。输出也是另一个堆栈,你可以返回并推到它,但不能弹出 所以如果 由于您无法在中返回到
本文向大家介绍在C ++中正确使用堆栈和堆?,包括了在C ++中正确使用堆栈和堆?的使用技巧和注意事项,需要的朋友参考一下 堆栈-函数内部声明的所有变量将占用堆栈中的内存。因此,函数内的任何局部变量都位于堆栈中。 堆-这是程序的未使用内存,可用于在程序运行时动态分配内存。因此,如果我们希望某些东西的寿命比声明它的函数的寿命更长,则必须在堆上分配它。 示例 堆内存中的主要问题是碎片,而堆栈中更容易出
有3个堆栈-A、B、C 堆栈A和B被排序(堆栈顶部的数字最大)。堆栈C为空,仅允许5次操作: 推,弹出,顶,is_empty,创建 我们需要编写一个函数来接收堆栈A和B,将堆栈A和B中的所有数字移动到堆栈C,堆栈C必须排序(最大数字在顶部)。 我有算法: 比较A的顶部和B的顶部 我开始写代码,但有错误,我不知道为什么! 代码: