愛奇藝-筆試刷題2018-07-17

題目描述:

/**
一個(gè)完整的括號(hào)字符串定義規(guī)則如下:
1、空字符串是完整的。
2、如果s是完整的字符串,那么(s)也是完整的。
3、如果s和t是完整的字符串,將它們連接起來形成的st也是完整的。
例如,"(()())", ""和"(())()"是完整的括號(hào)字符串,"())(", "()(" 和 ")"是不完整的括號(hào)字符串。
牛牛有一個(gè)括號(hào)字符串s,
現(xiàn)在需要在其中任意位置盡量少地添加括號(hào),
將其轉(zhuǎn)化為一個(gè)完整的括號(hào)字符串。
請(qǐng)問牛牛至少需要添加多少個(gè)括號(hào)。
輸入描述:
輸入包括一行,一個(gè)括號(hào)序列s,序列長度length(1 ≤ length ≤ 50).
s中每個(gè)字符都是左括號(hào)或者右括號(hào),即'('或者')'.
輸出描述:
輸出一個(gè)整數(shù),表示最少需要添加的括號(hào)數(shù)
輸入例子1:
(()(()
輸出例子1:
2
*/

思路如下:

其實(shí)就是找判斷合法性的過程中剩下多少個(gè)'(' 或者缺多少個(gè)'('
這里不需要用真正的棧只需一個(gè)指針維護(hù)模擬棧的大小即可
還有沒法匹配的')'數(shù)目即可

代碼如下:

#include<stdio.h>
#include<iostream>
 
using namespace std;
 
int main()
{
    string line;
    cin>>line;
    int stackSize=0, moreRightBracketNum=0;//多余的)括號(hào)
    for(int i=0; line[i]!='\0'; i++){
        if(line[i]!='(' && line[i]!=')')
            return -1;
        if(line[i]=='(')
            stackSize++;
        else if(line[i]==')'){
            if(stackSize>0)
                stackSize--;
            else
                moreRightBracketNum++;
        }
    }
    printf("%d", stackSize+moreRightBracketNum);
    return 0;
}
 
 

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.ios高性能編程 (1).內(nèi)層 最小的內(nèi)層平均值和峰值(2).耗電量 高效的算法和數(shù)據(jù)結(jié)構(gòu)(3).初始化時(shí)...
    歐辰_OSR閱讀 30,260評(píng)論 8 265
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,666評(píng)論 1 32
  • 題目描述: 思路如下: 題目要求的深度其實(shí)就是判斷合法性的時(shí)候,'('入棧的最大數(shù)目用一個(gè)指針模擬棧的大小即可 代...
    Dodo159753閱讀 200評(píng)論 0 0
  • 親愛的寶貝: 首先祝你生日快樂! 你心心念念的六歲生日終于到了,記得剛吃過五歲生日蛋糕你就開始盼望...
    冷月孤燈閱讀 1,077評(píng)論 0 0
  • 上周六朋友D邀請(qǐng),去紅磚美術(shù)館參加某全球頂級(jí)當(dāng)代藝術(shù)家的開幕酒會(huì),之后看展。我聽說美術(shù)館本身設(shè)計(jì)的有意思,...
    mingjuan4偏3閱讀 391評(píng)論 0 0

友情鏈接更多精彩內(nèi)容