国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

LeetCode——有效的括號

這篇具有很好參考價值的文章主要介紹了LeetCode——有效的括號。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

LeetCode——有效的括號,LeetCode,leetcode,算法,c語言,c++,數(shù)據(jù)結構

這里,我提供一種用棧來解決的方法:

思路:棧的結構是先進后出,這樣我們就可以模擬棧結構了,如果是‘(’、‘{’、‘[’任何一種,直接push進棧就可以了,如果是‘}’、‘)’、‘]’任何一種就開始判斷,看棧pop的是否和對應的字符匹配。

?文章來源地址http://www.zghlxwxcb.cn/news/detail-677329.html

LeetCode——有效的括號,LeetCode,leetcode,算法,c語言,c++,數(shù)據(jù)結構

LeetCode——有效的括號,LeetCode,leetcode,算法,c語言,c++,數(shù)據(jù)結構

?下面是源碼:

typedef char STDateType;
typedef struct Stack
{
	STDateType* a;
	int top;
	int capacity;
}Stack;

void StackInit(Stack* ps);
void StackPush(Stack* ps, STDateType x);
void StackPop(Stack* ps);
STDateType StackTop(Stack* ps);
int StackSize(Stack* ps);
bool StackEmpty(Stack* ps);
void StackDestroy(Stack* ps);

void StackInit(Stack* ps)
{
	assert(ps);
	ps->a = NULL;
	ps->capacity = ps->top = 0;
}

void StackPush(Stack* ps, STDateType x)
{
	assert(ps);

	if (ps->top == ps->capacity)
	{
		int newcapacity = ps->capacity == 0 ? 4 : ps->capacity * 2;
		STDateType* tmp = (STDateType*)realloc(ps->a, sizeof(STDateType) * newcapacity);
		
		if (tmp == NULL)
		{
			perror("realloc fail");
			exit(-1);
		}

		ps->a = tmp;
		ps->capacity = newcapacity;
	}

	ps->a[ps->top] = x;
	ps->top++;
}

void StackPop(Stack* ps)
{
	assert(ps);

	--ps->top;
}

STDateType StackTop(Stack* ps)
{
	assert(ps);

	return ps->a[ps->top - 1];
}

int StackSize(Stack* ps)
{
	assert(ps);

	return ps->top;
}

bool StackEmpty(Stack* ps)
{
	assert(ps);

	return ps->top == 0;
}

void StackDestroy(Stack* ps)
{
	assert(ps);

	free(ps->a);
	ps->a = NULL;
	ps->top = ps->capacity = 0;
}

bool isValid(char * s){
    Stack st;
    StackInit(&st);
    char top;
    while(*s)
    {
        if((*s == '(') || (*s == '[') || (*s == '{'))
        {
            StackPush(&st,*s);
        }else
        {
            if(StackEmpty(&st))
            {
								StackDestroy(&st);
                return false;
            }

					top = StackTop(&st);
					StackPop(&st);
        	if((*s == ']' && top != '[')
        	|| (*s == '}' && top != '{')
        	|| (*s == ')' && top != '('))
        	{
							StackPop(&st);
							StackDestroy(&st);
            	return false;  	
        	}
        }

        ++s;
    }

    bool ret = StackEmpty(&st);
    StackDestroy(&st);

    return ret;
}   

?

?

?

?

到了這里,關于LeetCode——有效的括號的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • LeetCode——有效的括號

    LeetCode——有效的括號

    這里,我提供一種用棧來解決的方法: 思路:棧的結構是先進后出,這樣我們就可以模擬棧結構了,如果是‘(’、‘{’、‘[’任何一種,直接push進棧就可以了,如果是‘}’、‘)’、‘]’任何一種就開始判斷,看棧pop的是否和對應的字符匹配。 ? ?下面是源碼: ? ?

    2024年02月11日
    瀏覽(24)
  • [Leetcode] 0020. 有效的括號

    點擊上方,跳轉至leetcode 給定一個只包括 \\\'(\\\' , \\\')\\\' , \\\'{\\\' , \\\'}\\\' , \\\'[\\\' , \\\']\\\' ?的字符串 s ,判斷字符串是否有效。 有效字符串需滿足: 左括號必須用相同類型的右括號閉合。 左括號必須以正確的順序閉合。 每個右括號都有一個對應的相同類型的左括號。 示例 1: 示例?2:

    2024年02月10日
    瀏覽(27)
  • 算法訓練day11Leetcode20有效的括號1047刪除字符串中所有相鄰重復項150逆波蘭表達式求值

    https://leetcode.cn/problems/valid-parentheses/description/ https://programmercarl.com/0020.%E6%9C%89%E6%95%88%E7%9A%84%E6%8B%AC%E5%8F%B7.html 判斷右括號后忘記pop 括號匹配是使用棧解決的經(jīng)典問題。 如果還記得編譯原理的話,編譯器在 詞法分析的過程中處理括號、花括號等這個符號的邏輯,也是使用了棧

    2024年01月17日
    瀏覽(20)
  • Leetcode刷題之有效的括號

    Leetcode刷題之有效的括號

    我們的內(nèi)心和心智,是決定我們未來命運的最強勁的力量。? ? ? ? ?-- 奧普拉·溫弗瑞 目錄 ??一.有效的括號 ??1.使用棧實現(xiàn) ??2.完整代碼: 題目描述: 給定一個只包括 \\\'(\\\',\\\')\\\',\\\'{\\\',\\\'}\\\',\\\'[\\\',\\\']\\\'?的字符串 s ,判斷字符串是否有效。 有效字符串需滿足: 1.左括號必須用相

    2024年02月05日
    瀏覽(25)
  • Leetcode 678. 有效的括號字符串

    有效的括號字符串 【問題描述】 給你一個只包含三種字符的字符串,支持的字符類型分別是 ‘(’、‘)’ 和 ‘*’。請你檢驗這個字符串是否為有效字符串,如果是有效字符串返回 true 。 有效字符串符合如下規(guī)則: 示例 1: 輸入:s = “()” 輸出:true 示例 2: 輸入:s = “

    2024年02月13日
    瀏覽(25)
  • LeetCode:20. 有效的括號——棧和隊列

    LeetCode:20. 有效的括號——棧和隊列

    ??道阻且長,行則將至。?? ??算法,不如說它是一種思考方式?? 算法專欄: ????123 題目描述 :給定一個只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判斷字符串是否有效。 有效字符串需滿足: 左括號必須用相同類型的右括號閉合。 左括號必須以正

    2023年04月26日
    瀏覽(28)
  • 【動態(tài)規(guī)劃】Leetcode 32. 最長有效括號【困難】

    給你一個只包含 ‘(’ 和 ‘)’ 的字符串,找出最長有效(格式正確且連續(xù))括號子串的長度。 示例 2: 輸入 :s = “)()())” 輸出 :4 解釋 :最長有效括號子串是 “()()” 1、使用動態(tài)規(guī)劃求解,定義一個一維數(shù)組dp,其中dp[i]表示以第i個字符結尾的最長有效括號子串的長度

    2024年04月27日
    瀏覽(22)
  • 【刷題筆記8.10】LeetCode題目:有效括號

    【刷題筆記8.10】LeetCode題目:有效括號

    給定一個只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判斷字符串是否有效。 有效字符串需滿足: 左括號必須用相同類型的右括號閉合。 左括號必須以正確的順序閉合。 每個右括號都有一個對應的相同類型的左括號 首先,解決此題,我們要明確使用 棧

    2024年02月13日
    瀏覽(16)
  • 環(huán)形鏈表、環(huán)形鏈表 II、有效的括號???????(leetcode)

    環(huán)形鏈表、環(huán)形鏈表 II、有效的括號???????(leetcode)

    目錄 一、環(huán)形鏈表 方法(快慢指針): 二、環(huán)形鏈表 II 三、有效的括號 給你一個鏈表的頭節(jié)點? head ?,判斷鏈表中是否有環(huán)。 如果鏈表中有某個節(jié)點,可以通過連續(xù)跟蹤? next ?指針再次到達,則鏈表中存在環(huán)。 為了表示給定鏈表中的環(huán),評測系統(tǒng)內(nèi)部使用整數(shù)? pos ?來

    2024年02月04日
    瀏覽(19)
  • Leetcode的AC指南 —— 棧與隊列:20. 有效的括號

    Leetcode的AC指南 —— 棧與隊列:20. 有效的括號

    摘要: **Leetcode的AC指南 —— 棧與隊列:20. 有效的括號 **。題目介紹:給定一個只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判斷字符串是否有效。 有效字符串需滿足: 左括號必須用相同類型的右括號閉合。 左括號必須以正確的順序閉合。 每個右括號都

    2024年01月22日
    瀏覽(16)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包