- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在对黑客等级实施平衡括号问题。 link
当我在hackerrank ide上运行我的程序时,它显示以下警告。
Solution.cpp: In function ‘std::__cxx11::string isBalanced(std::__cxx11::string)’:
Solution.cpp:51:17: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
if('{'!=s[i])
^~
Solution.cpp:54:21: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’
bracket.pop();
^~~~~~~
Solution.cpp:25:16: error: control reaches end of non-void function [-Werror=return-type]
stack<char>bracket;
^~~~~~~
cc1plus: some warnings being treated as errors
(test case)
后,程序崩溃。
isBalanced()
函数中显示。
#include <bits/stdc++.h>
using namespace std;
// return true if the passed character belongs to ar[], false otherwise
bool find(char ch,char ar[]){
for(int i=0;i<3;i++)
if(ar[i]==ch)
return true;
return false;
}
string isBalanced(string s) {
int size=s.length();
stack<char>bracket;
char open[3]={'{','[','('};
// if size of string is odd then expression is not balanced
if(size%2!=0)
return "NO";
for(int i=0;i<size;i++){
// if current bracket is opening bracket
// then push it into bracket stack
if(find(s[i],open)){
bracket.push(s[i]);
}
// if current bracket is closing bracket
// then match top element of bracket stack with current bracket
// if both are matched then pop an element from bracket stack
// if both are not matched return "NO"
else{
// if there is an element to match and current stack is empty then expression is not balanced
if(bracket.empty())
return "NO";
else
switch (bracket.top()) {
case '{':
if('{'!=s[i])
return "NO";
bracket.pop();
break;
case '(':
if('('!=s[i])
return "NO";
bracket.pop();
break;
case '[':
if('['!=s[i])
return "NO";
bracket.pop();
break;
}
bracket.pop();
}
return "YES";
}
}
int main()
{
int t;
cin >> t;
for (int t_itr = 0; t_itr < t; t_itr++) {
string s;
getline(cin, s);
string result = isBalanced(s);
cout << result << "\n";
}
return 0;
}
最佳答案
两件事情:
int main()
{
int t;
cin >> t;
cin.ignore();
for (int t_itr = 0; t_itr < t; t_itr++) {
string s;
getline(cin, s);
string result = isBalanced(s);
cout << result << "\n";
}
return 0;
}
int main()
{
int t;
cin >> t;
for (int t_itr = 0; t_itr < t; t_itr++) {
string s;
cin >> s;
string result = isBalanced(s);
cout << result << "\n";
}
return 0;
}
isBalanced()
的正确实现:string isBalanced(string s) {
int size=s.length();
stack<char>bracket;
char open[3]={'{','[','('};
if(size%2!=0)
return "NO";
for(int i=0;i<size;i++){
cout << i << endl;
if(find(s[i],open)){
bracket.push(s[i]);
}
else{
if(bracket.empty())
return "NO";
else
{
switch (bracket.top()) {
case '{':
if('}'!=s[i])
return "NO";
break;
case '(':
if(')'!=s[i])
return "NO";
break;
case '[':
if(']'!=s[i])
return "NO";
break;
}
bracket.pop();
}
}
}
return bracket.empty() ? "YES" : "NO";
}
关于c++ - 为什么我的C++程序崩溃了。我是圆括号的实现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61421254/
我想用 PL/SQL 将分号分隔的字符串分成几个部分。只要字符串中没有圆括号,它就可以与 REGEXP_SUBSTR 一起正常工作。 示例: select REGEXP_SUBSTR('A;B;C',
我是 javascript 的新手,很难理解为什么/何时使用方括号/圆括号。 如果你有一个叫clicker的按钮,你可以写... document.getElementById("clicke
我试图理解这段代码: https://github.com/CameronAavik/AdventOfCode/blob/master/Challenges/2018/Day03.fs 但是我找不到有
我正在努力获取 JavaScript 中字符串的所有内括号。 例如,如果我有一个这样的字符串(不要理会 % 符号,Qx 值被它包围) ((!%Q1% || %Q2%) || ((%Q3% && %Q4
我正在使用 Azure 翻译器 ( https://www.microsoft.com/en-us/translator/translatorapi.aspx )。如果我将这个字符串翻译成瑞典语: w
我正在使用 Azure 翻译器 ( https://www.microsoft.com/en-us/translator/translatorapi.aspx )。如果我将这个字符串翻译成瑞典语: w
R 如何解释括号?像大多数其他编程语言一样,这些是内置运算符,我通常不假思索地使用它们。 但是,我遇到了这个例子。假设我们有一个 data.table在 R 中,我想在它的列上应用一个函数。那我可能会
oldvalue = "RGB = (255,000,255,000)" newvalue = "RGB = (255,255,000,000)" File.WriteAllText("C:\\Use
我对 Bash 中方括号、括号、花括号的用法以及它们的双重或单一形式之间的区别感到困惑。有明确的解释吗? 最佳答案 在 Bash 中,test 和 [ 是 shell 内置函数。 double bra
我对 Bash 中方括号、圆括号、大括号的使用以及它们的双形式或单形式之间的差异感到困惑。有没有明确的解释? 最佳答案 在 Bash 中,test 和 [ 是 shell 内置命令。 double b
我对 Bash 中方括号、括号、花括号的用法以及它们的双重或单一形式之间的区别感到困惑。有明确的解释吗? 最佳答案 在 Bash 中,test 和 [ 是 shell 内置函数。 double bra
下面这行代码输出SyntaxError: invalid syntax for (i in range(-WIDTH,WIDTH)): 下一个工作没有错误。我不知道这里应该有什么语法错误。所以我只是出
我有一个字符串 User name (sales) 并且我想提取括号之间的文本,我该怎么做? 我怀疑是子字符串,但直到右括号我才知道如何阅读,文本的长度会有所不同。 最佳答案 如果你想远离正则表达式,
为什么 mapStateToProps 在 props 对象周围有这些圆括号 () ?这是 IIFE 还是类似的东西? const mapStateToProps = state => ({ au
我有一些看起来像这样的文本: (something1)something2 但是 something1 和 something2 也可能有一些括号,例如 (some(thing)1)something
我找到了这样的代码: typedef std::map map_type; 找了一段时间,还是没搞清楚(*)运算符到底是干什么的。有人有什么想法吗? 最佳答案 此处的括号用于强加优先级。类型 Exam
在 PHPStorm 和 SublimeText 中,有用于转到匹配的大括号/方括号/圆括号的热键。 在 SublimeText 中这是非常直观的:当直接指向所述字符时,您可以跳转到匹配的字符,然后您
作为一名 Android 初学者,并且已经远离编程多年,我在互联网上找不到这个问题的答案。它涉及到我读过的一本书中的以下代码,但语法对于 Android 来说很常见。我不知道什么是});代表。作为过去
IPython 自版本 5 起使用 Prompt_toolkit 而不是 readline,我尝试使用它的此包的实现来启用双引号、圆括号和方括号的自动关闭。我已经得到了这段代码: ip = get_i
我无法让自动缩进正常工作,除非我使用自动关闭大括号等(我不喜欢),而且我看不到允许跳过/跳过的选项。 Eclipse 对此有一个配置选项,而 Visual Studio 默认情况下不会自动关闭所有内容
我是一名优秀的程序员,十分优秀!