Wie berechnet man die Zeitkomplexität des C-Programms?

1 Antworten


  • #include<bits/stdc++.h>
    using namespace std;
    #define MAX_CHARS 160

    // Diese Funktion gibt true zurück, wenn str1 und str2 ismorph sind
    bool areIsomorphic(string str1, string str2)
    {

      int m = str1.length(), n = str2.length();

      // Länge beider Strings muss gleich sein für eins zu eins
      // Entsprechung
      if (m != n)
      return false;

      // Um ​​besuchte Zeichen in str2 zu markieren boolmarked
      [MAX_CHARS] = {false};

      // Um ​​die Zuordnung jedes Zeichens von str1 zu
      // dem von str2 zu speichern. Initialisieren Sie alle Einträge der Karte als -1.
      int-Map[MAX_CHARS];
      memset(map, -1, sizeof(map));

      // Verarbeite alle Zeichen nacheinander
      für (int i = 0; i < n; i++)
      {
        // Wenn das aktuelle Zeichen von str1 zum ersten
        Mal // darin gesehen wird.
        if (map[str1[i]] == -1)
        {
          // Wenn das aktuelle Zeichen von str2 bereits
          // gesehen wird, ist eine Eins-zu-Eins-Zuordnung nicht möglich
          if (marked[str2[i]] == true)
            return false;

          // Aktuelles Zeichen von str2 als besucht
          markieren markiert[str2[i]] = true;

          // Speichere die Zuordnung der aktuellen Zeichen
          map[str1[i]] = str2[i];
        }

        // Wenn dies nicht das erste Auftreten des aktuellen
        // Zeichens in str1 ist, dann prüfen Sie, ob das vorherige
        // Aussehen dem gleichen Zeichen von str2 zugeordnet ist
        else if (map[str1[i]] != str2[i])
          return false;
      }

      true zurückgeben;
    }

    // Treiberprogramm
    int main()
    {
    cout << areIsomorphic("bbb", "yyy") << endl;
    cout << areIsomorphic("aab", "yyz") << endl;
    0 zurückgeben;
    }

Schreibe deine Antwort

Ihre Antwort erscheint nach der Moderation appear