本文說(shuō)明瞭如何使用Java查找最長(zhǎng)平衡括號(hào)前綴的長(zhǎng)度。首先,我們將使用幾個(gè)示例理解問(wèn)題,然後學(xué)習(xí)兩種不同的方法來(lái)尋找問(wèn)題。
問(wèn)題解釋在這裡,我們給出一個(gè)包含括號(hào)的字符串,我們需要從字符串中找到平衡的括號(hào)集的長(zhǎng)度。換句話說(shuō),如果有所有開(kāi)口括號(hào)
“(”(“”),那麼我們將其稱為平衡。 從字符串的開(kāi)頭,前綴定義平衡集。例如,對(duì)於括號(hào)集'(())()',僅'(())'。 >輸入和輸出方案
為了更好地理解,讓我們看一些輸入和輸出方案。
如果輸入字符串為
“(()”,平衡括號(hào)前綴為
()- ,則長(zhǎng)度為2。
- 如果輸入字符串為”(((())))(((“),平衡括號(hào)前綴為((()(()(()(()) )))>所以長(zhǎng)度為8。 >
- 如果輸入字符串為“(()()())()()”,平衡的括號(hào)前綴為(()()()()),則長(zhǎng)度是6。
- 最長(zhǎng)平衡括號(hào)前綴的長(zhǎng)度可以找到如下: 使用堆棧數(shù)據(jù)結(jié)構(gòu) 計(jì)數(shù)打開(kāi)和關(guān)閉括號(hào)
使用堆棧數(shù)據(jù)結(jié)構(gòu)
- >可以使用堆棧。如果從堆棧中找到開(kāi)口括號(hào)' (
- ',請(qǐng)將其推到堆棧上。如果找到閉合括號(hào),請(qǐng)彈出堆棧,並將計(jì)數(shù)器變量增加2(平衡均值的長(zhǎng)度您得到的是2 。)繼續(xù)執(zhí)行此操作,並在變?yōu)榭斩褩r(shí)返回計(jì)數(shù)器變量 >算法
算法如下:
如果字符為
(>,將其推到堆棧上。>
如果
字符為)
,則會(huì)彈出堆棧。<code><p><b>ステップ1:</b>スタックとカウンタを初期化します。</p> <p><b>ステップ2:</b>文字列の各文字を反復(fù)処理します。</p></code>
- >將計(jì)數(shù)器增加2。
- 檢查堆棧是否為空。 如果是空的,則結(jié)束循環(huán)。
- > 步驟3:
-
>示例
<code><p><b>ステップ1:</b>スタックとカウンタを初期化します。</p> <p><b>ステップ2:</b>文字列の各文字を反復(fù)処理します。</p></code>
輸出
輸入字符串是:((())((() 最長(zhǎng)平衡括號(hào)前綴的長(zhǎng)度為:6>
計(jì)數(shù)打開(kāi)和關(guān)閉括號(hào)此方法使用兩個(gè)變量:計(jì)數(shù)和長(zhǎng)度。如果字符為“
”(>”,則從字符串中獲得1;如果字符計(jì)數(shù)為1;如果字符為“)”,則減少數(shù)量為1,而增量長(zhǎng)度則增加2。檢查計(jì)數(shù)是否為0,如果是0,則退出循環(huán)並返回長(zhǎng)度。 >示例
import java.util.Stack; public class Example { public static int longestBalancedPrefix(String s) { Stack<Character> stack = new Stack<>(); int count = 0; for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); if (c == '(') { stack.push(c); } else if (c == ')') { if (!stack.isEmpty()) { stack.pop(); count += 2; } } if (stack.isEmpty()) { break; } } return count; } public static void main(String[] args) { String s = "((())((("; int length = longestBalancedPrefix(s); System.out.println("入力文字列は:" + s); System.out.println("最長(zhǎng)のバランスの取れた括弧のプレフィックスの長(zhǎng)さは:" + length); } }
輸出輸入字符串為((()()())((()))) 最長(zhǎng)平衡的括號(hào)前綴長(zhǎng)度為8
以上是使用Java的最長(zhǎng)平衡括號(hào)前綴的長(zhǎng)度的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

熱AI工具

Undress AI Tool
免費(fèi)脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強(qiáng)大的PHP整合開(kāi)發(fā)環(huán)境

Dreamweaver CS6
視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版
神級(jí)程式碼編輯軟體(SublimeText3)

熱門話題

寫好PHP註釋的關(guān)鍵在於明確目的與規(guī)範(fàn),註釋應(yīng)解釋“為什麼”而非“做了什麼”,避免冗餘或過(guò)於簡(jiǎn)單。 1.使用統(tǒng)一格式,如docblock(/*/)用於類、方法說(shuō)明,提升可讀性與工具兼容性;2.強(qiáng)調(diào)邏輯背後的原因,如說(shuō)明為何需手動(dòng)輸出JS跳轉(zhuǎn);3.在復(fù)雜代碼前添加總覽性說(shuō)明,分步驟描述流程,幫助理解整體思路;4.合理使用TODO和FIXME標(biāo)記待辦事項(xiàng)與問(wèn)題,便於後續(xù)追蹤與協(xié)作。好的註釋能降低溝通成本,提升代碼維護(hù)效率。

註釋不能馬虎是因?yàn)樗忉尨a存在的原因而非功能,例如兼容老接口或第三方限制,否則看代碼的人只能靠猜。必須加註釋的地方包括複雜的條件判斷、特殊的錯(cuò)誤處理邏輯、臨時(shí)繞過(guò)的限制。寫註釋更實(shí)用的方法是根據(jù)場(chǎng)景選擇單行註釋或塊註釋,函數(shù)、類、文件開(kāi)頭用文檔塊註釋說(shuō)明參數(shù)與返回值,並保持註釋更新,對(duì)複雜邏輯可在前面加一行概括整體意圖,同時(shí)不要用註釋封存代碼而應(yīng)使用版本控制工具。

寫好註釋的關(guān)鍵在於說(shuō)明“為什麼”而非僅“做了什麼”,提升代碼可讀性。 1.註釋應(yīng)解釋邏輯原因,例如值選擇或處理方式背後的考量;2.對(duì)複雜邏輯使用段落式註釋,概括函數(shù)或算法的整體思路;3.定期維護(hù)註釋確保與代碼一致,避免誤導(dǎo),必要時(shí)刪除過(guò)時(shí)內(nèi)容;4.在審查代碼時(shí)同步檢查註釋,並通過(guò)文檔記錄公共邏輯以減少代碼註釋負(fù)擔(dān)。

寫好PHP註釋的關(guān)鍵在於清晰、有用且簡(jiǎn)潔。 1.註釋應(yīng)說(shuō)明代碼背後的意圖而非僅描述代碼本身,如解釋複雜條件判斷的邏輯目的;2.在魔術(shù)值、舊代碼兼容、API接口等關(guān)鍵場(chǎng)景添加註釋以提升可讀性;3.避免重複代碼內(nèi)容,保持簡(jiǎn)潔具體,並使用標(biāo)準(zhǔn)格式如PHPDoc;4.註釋需與代碼同步更新,確保準(zhǔn)確性。好的註釋應(yīng)站在他人角度思考,降低理解成本,成為代碼的理解導(dǎo)航儀。

PHP變量以$開(kāi)頭,命名需遵循規(guī)則,如不能以數(shù)字開(kāi)頭、區(qū)分大小寫;變量作用域分為局部、全局和超全局;使用global可訪問(wèn)全局變量,但建議用參數(shù)傳遞;可變變量和引用賦值需謹(jǐn)慎使用。變量是存儲(chǔ)數(shù)據(jù)的基礎(chǔ),正確掌握其規(guī)則和機(jī)制對(duì)開(kāi)發(fā)至關(guān)重要。

第一步選擇集成環(huán)境包XAMPP或MAMP搭建本地服務(wù)器;第二步根據(jù)項(xiàng)目需求選擇合適的PHP版本並配置多版本切換;第三步選用VSCode或PhpStorm作為編輯器並搭配Xdebug進(jìn)行調(diào)試;此外還需安裝Composer、PHP_CodeSniffer、PHPUnit等工具輔助開(kāi)發(fā)。

PHP註釋有三種常用方式:?jiǎn)涡性]釋適合簡(jiǎn)要說(shuō)明代碼邏輯,如//或#用於當(dāng)前行解釋;多行註釋/*...*/適合詳細(xì)描述函數(shù)或類的作用;文檔註釋DocBlock以/**開(kāi)頭,為IDE提供提示信息。使用時(shí)應(yīng)避免廢話、保持同步更新,並勿長(zhǎng)期用註釋屏蔽代碼。

PHP基礎(chǔ)語(yǔ)法包括:1.使用包裹代碼;2.用echo或print輸出內(nèi)容,其中echo支持多參數(shù);3.變量無(wú)需聲明類型,以$開(kāi)頭,常見(jiàn)類型有字符串、整數(shù)、浮點(diǎn)數(shù)、布爾值、數(shù)組和對(duì)象。掌握這些要點(diǎn)有助於快速入門PHP開(kāi)發(fā)。
