Schreiben Sie ein Programm, um zu überprüfen, gegebenen input-string balance-Klammern

Gegeben ein string von Klammern, ein Programm zu schreiben, um herauszufinden, ob Sie die gültigen oder nicht.

Beispiele-

input : {{{}}}
output: Valid

input : }{}{}{}}
output: Invalid

Schrieb ich den folgenden code in C und getestet, dass der Ausgang kamen korrigieren.

#include <stdio.h>
#include <stdlib.h>

int main()
{   
  char str[20];
  int i=0;

  printf("Enter String: ");
  gets(str);

  int count = 0;
  while (str[i] != '\0')
  {
    if (str[i] == '}')
        count--;
    if (str[i] == '{')
        count++;
    if (count < 0)
    {
        printf("\nInvalid");
        break;
    }   
    i++;        
  }
  if (count == 0)
      printf("\nValid");
  return 0;
 }

Dieses Programm funktioniert nicht für den Fall, wo die Eingabe ist {{{}}, welche Bedingung(en) fehlen mir?

  • Verwenden Sie nicht gets() es gefährlich ist, ersetzen Sie es mit fgets(str, sizeof(str), stdin); und vermeiden von buffer-overflow-Fehler. Und diese Seite ist nicht für die Arbeit code Fragen, ist es für Fragen der code, der Probleme hat, dein code ist gut, und es ist auch effizient genug. Das einzige, was falsch daran ist gets().
Schreibe einen Kommentar