題目描述
對於一行**(字串),裡面可能出現大括號「{}」、中括號「」和小括號「()」,請程式設計判斷改行**的括號巢狀是否正確。
「()」,「({})」,「printf('hello netease')」等都是括號使用的正確方法,「(}」,"print(hello netease]"則是錯誤的範例。
輸入描述
輸入包含一行,為一行包含括號的字串(字串長度不超過1000)
輸出描述
輸出為true或者false
思路:
可以採用棧解題,對字串進行遍歷,每當遇到左括號,則push該左括號到棧中,若遇到右括號,則將棧頂的元素和其進行配對(注意判斷棧是否為空),若為與之匹配的左括號,則pop該元素,否則輸出false並return。
遍歷結束後若棧不為空則輸出false並return;
#include #include using namespace std;
const int stack_capacity = 128;
typedef char stackelement;
struct stack
;typedef stack *stackpointer;
void push(stackpointer stack, stackelement item)
void pop(stackpointer stack)
int main()
else
} else if (str[i] == ']')
else
} else if (str[i] == '}')
else
} }if (stack->top != -1)
cout << "true";
return 0;
}
2020網易互娛筆試C題
題目 巴拉巴拉,沒有原題,懶得敲了 題意比較坑的地方在於,輸入的v對應的是第i個v 如果第一行的原序列是231 第二行的v序列是159 則對應上去就是591 一開始死在這個地方了 接下來討論解法 n分奇偶討論 n為偶數時,顯然直接交換1和2,3和4,n 1和n 這邊的數字指的是位置,不是序列對應的值...
2019網易互娛8 9筆試
逐級扣稅,關鍵 四捨五入 int x 0.5 問題 c 在本地編譯通過,在牛客不通過 import sys def shui x if x 5000 return 0 if x 5000 and x 8000 return x 5000 0.03 if x 8000 and x 17000 retu...
9 4 網易互娛客戶端筆試
做了一半圖書館閉館,我?第一題public class main for int i 0 i else else if hand.equals left caozuo.equals return else if hand.equals right caozuo.equals return else ...