2023年7月7日 星期五

[20] Valid Parentheses

跌股啊~跌股啊~(掩面)
想起室友發現我把leetcode寫在自己部落格的時候說的 : "妳好意思?!"
屋屋屋屋屋屋屋

這題沒什麼好說了QQ 
就是stack基本題,我怎麼腦中一片空白呢屋屋

bool isValid(char * s){
int len = strlen(s);
char stack[10000];
int ptr= -1;
for (int i=0;i<len; i++)
{
if (s[i]=='(' || s[i]== '[' || s[i]== '{') //push
{
stack[++ptr]=s[i];
}
else if (ptr <0)
return false;
else if ((s[i]== ')' && stack[ptr] == '(') ||
(s[i]== ']' && stack[ptr] == '[') ||
(s[i]== '}' && stack[ptr] == '{') )
{
stack[ptr]='\0';
ptr--;
}
else
return false; //something wrong
}
if (ptr >=0)
return false;
return true;
}
[20251108]更新
說不上來是有進步還是沒進步 感覺corner case 還是沒辦法考慮的很全面啊QQ
bool isValid(char* s) {
int len = strlen(s);
int top = -1;
char* stack= calloc(len, sizeof(char));
for (int i=0; i<len; i++)
{
if (s[i]=='(' ||s[i]=='{' ||s[i]=='[')
stack[++top]=s[i];
else if (top <0 || (s[i]==')' && stack[top]!='(')||
(s[i]==']'&& stack[top]!='[')||
(s[i]=='}'&& stack[top]!='{'))
return false;
else
top --;
}
return (top <0)?true: false;
}

沒有留言:

張貼留言