日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

678. 有效的括号字符串

發(fā)布時(shí)間:2023/11/29 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 678. 有效的括号字符串 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

678. 有效的括號(hào)字符串

給定一個(gè)只包含三種字符的字符串:( ,) 和 *,寫(xiě)一個(gè)函數(shù)來(lái)檢驗(yàn)這個(gè)字符串是否為有效字符串。有效字符串具有如下規(guī)則:

  • 任何左括號(hào) ( 必須有相應(yīng)的右括號(hào) )。
  • 任何右括號(hào) ) 必須有相應(yīng)的左括號(hào) ( 。
  • 左括號(hào) ( 必須在對(duì)應(yīng)的右括號(hào)之前 )。
    • 可以被視為單個(gè)右括號(hào) ) ,或單個(gè)左括號(hào) ( ,或一個(gè)空字符串。
  • 一個(gè)空字符串也被視為有效字符串。
  • 示例 1:輸入: "()" 輸出: True 示例 2:輸入: "(*)" 輸出: True 示例 3:輸入: "(*))" 輸出: True 注意:

    字符串大小將在 [1,100] 范圍內(nèi)。

    解題思路

    使用貪心算法,維護(hù)一個(gè)左括號(hào)的最大值和最小值

  • 當(dāng)遇到(,左括號(hào)的數(shù)目加一,無(wú)論是最大值或者最小值
  • 當(dāng)遇到),左括號(hào)的數(shù)目減去一,無(wú)論是最大值或者最小值。如果最大值小于0了,說(shuō)明即使把所有的*換成(,也無(wú)法滿(mǎn)足)的需求
  • 當(dāng)遇到*,我們可以將其當(dāng)成(或者),當(dāng)成),就需要把最小值減去1,因?yàn)橄袅艘粋€(gè)(。當(dāng)成(,就需要把最大值加上1
  • 代碼

    class Solution {public boolean checkValidString(String s) {int del=0,lMax=0,lMin=0,i=0,n=s.length();while(i<n){if(s.charAt(i)=='('){lMax++;lMin++;}else if(s.charAt(i)==')'){lMax--;lMin=Math.max(0,lMin-1);if(lMax<0)return false;}else {lMax++;lMin=Math.max(0,lMin-1);}i++;}return lMin==0;} } 創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

    總結(jié)

    以上是生活随笔為你收集整理的678. 有效的括号字符串的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。