1.原题链接
给定一个字符串A和其长度n,请返回一个bool值代表它是否为一个合法的括号串(只能由括号组成)。
测试样例:
“(()())”,6
返回:true
测试样例:
“()a()()”,7
返回:false
测试样例:
“()(()()”,7
返回:false
代码
class Parenthesis {
public:
bool chkParenthesis(string A, int n) {
// write code here
int l = 0;//左括号
for(int i = 0; i < n; i ++)
{
if(A[i] == '(')
{
l ++;
}
else if(A[i] == ')')
{
if(l > 0)
l--;
else
return false;
}
else
return false;//只要有不是括号的字符都算不合法
}
return l == 0;
}
};
2.原题链接
描述
给定两个int A和B。编写一个函数返回A+B的值,但不得使用+或其他算数运算符。
测试样例:
1,2
返回:3
代码
class UnusualAdd {
public:
int addAB(int A, int B) {
// write code here
int sum = 0, carry = 0;
while(B)
{
sum = A ^ B;
carry = (A&B) << 1;
A = sum;
B = carry;
}
return sum;
}
};