回覆列表
  • 1 # 我是阿嘛

    如果只有圓括號(沒有[ ] 或 { }),不需要構造一個棧。因為用棧實現時,棧裡裝的都是一模一樣的左括號 "(" ,因此我們只需定義一個 整型變數 來記錄 棧中元素的個數 即可。具體程式碼如下:

    #include

    int main (void)

    {

    char input = 0;

    int num = 0; /* 不用棧,只記錄棧中元素的個數,初始化為0 */

    while (1 == scanf ("%c", &input)) /* 讀入字串,每次讀一個字元存入 input 中 */

    {

    if ("(" == input)

    {

    ++num; /* 相當於把左括號壓棧 */

    }

    if (")" == input)

    {

    --num; /* 相當於遇到右括號時彈棧 */

    }

    if (0 > num)

    {

    printf ("括號不匹配\n");

    return 0;

    }

    }

    if (0 == num) /* 讀完字串後判斷“棧”是否為空 */

    {

    printf ("括號匹配\n");

    }

    else

    {

    printf ("括號不匹配\n");

    }

    return 0;

    }

  • 2 # 我是阿嘛

    如果只有圓括號(沒有[ ] 或 { }),不需要構造一個棧。因為用棧實現時,棧裡裝的都是一模一樣的左括號 "(" ,因此我們只需定義一個 整型變數 來記錄 棧中元素的個數 即可。具體程式碼如下:

    #include

    int main (void)

    {

    char input = 0;

    int num = 0; /* 不用棧,只記錄棧中元素的個數,初始化為0 */

    while (1 == scanf ("%c", &input)) /* 讀入字串,每次讀一個字元存入 input 中 */

    {

    if ("(" == input)

    {

    ++num; /* 相當於把左括號壓棧 */

    }

    if (")" == input)

    {

    --num; /* 相當於遇到右括號時彈棧 */

    }

    if (0 > num)

    {

    printf ("括號不匹配\n");

    return 0;

    }

    }

    if (0 == num) /* 讀完字串後判斷“棧”是否為空 */

    {

    printf ("括號匹配\n");

    }

    else

    {

    printf ("括號不匹配\n");

    }

    return 0;

    }

  • 中秋節和大豐收的關聯?
  • fgo一開始有哪些很強並且一直很強的英靈?又有哪些一開始不強將來很強的英靈?