C语言学习:如果用VS开发一个程序,具体步骤有哪些?在过程中需要注意什么?
1.新建项目时注意什么?2.编写代码注意什么?3.完成后工程文件打包怎么办?4.如果涉及数据库,应该如何连接呢?最后打包又该怎么办呢?
要看你具体的需求,是gui还是console?如果要数据库是哪个数据库,MySQL?mongodb?
问题:给定一个只包括
'('
,')'
,'{'
,'}'
,'['
,']'
的字符串s
,判断字符串是否有效。1.输入:s = "()" 输出:true 2.输入:s = "(]" 输出:false
思想:利用栈后进先出的特点,依次遍历字符串,遇到左括号进栈,遇到右括号用其与栈顶元素对比,若左右括号匹配,就pop掉栈顶左括号,接着匹配下一对括号。
代码实现:
bool isValid(char * s){
assert(s);
ST ps = {0};
StackInit(&ps);//初始化栈
while(*s)
{
if((*s =='(')||(*s=='{')||(*s=='['))
{
StackPush(&ps,*s);
s++;
}
else
{
if(StackEmpty(&ps)) //如果再这为空说明该开始是右括号或者为空
return false;
char top = Stacktop(&ps);//*s只包含括号,所以只需要考虑括号的比就行
StackPop(&ps);
if((*s==']'&&top!='[')||(*s=='}'&&top!='{')||(*s==')'&&top!='('))
return false;
else
{
s++;
}
}
}
if(StackEmpty(&ps))//此时栈为空则正确,不为空可能s只含有左括号
return true;
return false;
}