Heim > Backend-Entwicklung > C++ > Hauptteil

Überprüfen Sie, ob Großbuchstaben in einer Zeichenfolge korrekt verwendet werden

王林
Freigeben: 2023-08-28 20:57:10
nach vorne
1381 Leute haben es durchsucht

Überprüfen Sie, ob Großbuchstaben in einer Zeichenfolge korrekt verwendet werden

Problemstellung

Wir erhalten eine Zeichenfolge „str“, die Groß- oder Kleinbuchstaben enthält. Wir müssen prüfen, ob die Verwendung von Großbuchstaben in der Zeichenfolge korrekt ist.

Hier erfahren Sie, wie Sie Großbuchstaben in Zeichenfolgen richtig verwenden.

  • Wenn nur das erste Zeichen ein Großbuchstabe ist, sind die anderen Zeichen Kleinbuchstaben.

  • Wenn alle Zeichen der Zeichenfolge Kleinbuchstaben sind.

  • Wenn alle Zeichen der Zeichenfolge Großbuchstaben sind.

Beispiel

Eintreten

"Hello"
Nach dem Login kopieren

Ausgabe

"valid"
Nach dem Login kopieren
Die chinesische Übersetzung von

Erklärung

lautet:

Erklärung

In „Hallo“ ist nur das erste Zeichen großgeschrieben und die anderen Zeichen sind kleingeschrieben, es handelt sich also um eine gültige Zeichenfolge.

Eintreten

'hello'
Nach dem Login kopieren

Ausgabe

'valid'
Nach dem Login kopieren
Die chinesische Übersetzung von

Erklärung

lautet:

Erklärung

In der Zeichenfolge „Hallo“ sind alle Zeichen kleingeschrieben, es handelt sich also um eine gültige Zeichenfolge.

Eintreten

‘heLLO’
Nach dem Login kopieren

Ausgabe

‘Not Valid’
Nach dem Login kopieren
Die chinesische Übersetzung von

Erklärung

lautet:

Erklärung

In der Zeichenfolge „heLLO“ ist das erste Zeichen ein Kleinbuchstabe, aber die letzten 3 Zeichen sind Großbuchstaben, sodass diese Zeichenfolge ungültig ist.

Methode 1

Wenn bei dieser Methode das erste Zeichen ein Kleinbuchstabe ist, prüfen wir, ob alle Zeichen der Zeichenfolge Kleinbuchstaben sind und geben einen booleschen Wert zurück. Wenn das erste Zeichen ein Großbuchstabe ist, prüfen wir, ob alle anderen Zeichen Groß- oder Kleinbuchstaben sind und geben einen booleschen Wert zurück.

Algorithmus

  • Schritt 1 – Definieren Sie die Funktion isLower(), die ein einzelnes Zeichen als Argument verwendet und einen booleschen Wert zurückgibt, unabhängig davon, ob das Zeichen kleingeschrieben ist oder nicht. Wenn „Zeichen-A“ größer oder gleich 32 ist, handelt es sich um ein Kleinbuchstabe.

  • Schritt 2 – Definieren Sie die Funktion isUpper() genau wie die Funktion isLower() und geben Sie einen booleschen Wert zurück, basierend darauf, ob das Zeichen ein Großbuchstabe ist oder nicht.

  • Schritt 3 – Definieren Sie die Funktion isValidUpper(), die prüft, ob eine Zeichenfolge alle gültigen Großbuchstaben enthält.

  • Schritt 4 – Verwenden Sie in der Funktion isValidUpper() die Funktion isLower() und prüfen Sie, ob das erste Zeichen ein Kleinbuchstabe ist. Wenn ja, verwenden Sie eine Schleife und die Funktion isUpper(), um nach allen anderen Zeichen zu suchen. Gibt „false“ zurück, wenn Zeichen in Großbuchstaben geschrieben sind. Andernfalls wird „true“ zurückgegeben, wenn alle Zeichen Kleinbuchstaben sind.

  • Schritt 5 – Wenn das erste Zeichen ein Großbuchstabe ist, müssen Sie zwei Groß- und Kleinschreibung überprüfen. Der erste Fall besteht darin, dass alle Zeichen Großbuchstaben sein können oder alle bis auf das erste Zeichen Kleinbuchstaben sein können.

  • Schritt 5.1 – Variable „totalUpper“ definieren und auf 1 initialisieren.

  • Schritt 5.2 − Zählen Sie die Gesamtzahl der Großbuchstaben in der Zeichenfolge.

  • Schritt 5.3 – Gibt „true“ zurück, wenn die Gesamtzahl der Großbuchstaben gleich 1 oder der Länge der Zeichenfolge ist, was darauf hinweist, dass die Zeichenfolge gültige Großbuchstaben enthält. Andernfalls wird false zurückgegeben.

Beispiel

#include <bits/stdc++.h>
using namespace std;
// Check if character c is in lowercase or not
bool isLower(char c){
   return c - 'A' >= 32;
}
// Check if character c is in uppercase or not
bool isUpper(char c){
   return c - 'A' < 32;
}
bool isValidUpperCase(string str){
   int len = str.size();
   // If the first character is in lowercase, check whether all the other characters are in lowercase or not.
   // If not, return false. Otherwise, return true.
   if (isLower(str[0]))  {
      for (int i = 1; i < len; i++) {
         if (isUpper(str[i]))
            return false;
      }
      return true;
   } else {
      // If the first character is in uppercase, find the total number of uppercase characters
      int totalUpper = 1;
      for (int i = 1; i < len; i++){
         if (isUpper(str[i]))
            totalUpper++;
      }
      // if the total number of uppercase characters is equal to the length of the string or 1, return true. Otherwise, return false.
      if (totalUpper == len || totalUpper == 1)
         return true;
      else
         return false;
   }
}
int main(){
   string str1 = "TutorialsPoint";
   string str2 = "tutorialspoint";
   string str3 = "Tutorialspoint";
   string str4 = "TUTORIALSPOINT";
   cout << str1 << " : " << (isValidUpperCase(str1) ? "Valid" : "Not valid") << endl;
   cout << str2 << " : " << (isValidUpperCase(str2) ? "Valid" : "Not valid") << endl;
   cout << str3 << " : " << (isValidUpperCase(str3) ? "Valid" : "Not valid") << endl;
   cout << str4 << " : " << (isValidUpperCase(str4) ? "Valid" : "Not valid") << endl;
   return 0;
}
Nach dem Login kopieren

Ausgabe

TutorialsPoint : Not valid
tutorialspoint : Valid
Tutorialspoint : Valid
TUTORIALSPOINT : Valid
Nach dem Login kopieren
Nach dem Login kopieren
  • Zeitkomplexität − O(N), da zum Durchlaufen der Zeichenfolge die Verwendung einer Schleife erforderlich ist. Die Zeitkomplexität der Funktionen isLower() und isUpper() beträgt O(1).

  • Raumkomplexität − O(1), da kein zusätzlicher Raum benötigt wird.

Methode 2

In der folgenden Methode haben wir den Code der ersten Methode optimiert. Hier prüfen wir, ob die Zeichenfolge gültige Großbuchstaben enthält, indem wir prüfen, ob zwei benachbarte Elemente in der Zeichenfolge außer den ersten beiden Zeichen die gleiche Groß-/Kleinschreibung haben.

Algorithmus

  • Schritt 1 − Verwenden Sie eine for-Schleife, um vom ersten Index zum letzten Index der Zeichenfolge zu iterieren.

  • Schritt 2 – Wenn in der for-Schleife das aktuelle Zeichen ein Großbuchstabe und das vorherige Zeichen ein Kleinbuchstabe ist, geben Sie „false“ zurück, da es sich nicht um eine gültige Zeichenfolge handelt.

  • Schritt 3 − Wenn das aktuelle Zeichen ein Kleinbuchstabe und das vorherige Zeichen ein Großbuchstabe ist, führen Sie die folgenden Schritte aus.

  • Schritt 3.1 – Überprüfen Sie, ob sich das vorherige Zeichen am 0. Index oder am ersten Zeichen in der Zeichenfolge befindet, und fahren Sie in der for-Schleife fort.

  • Schritt 3.2 − Wenn das vorherige Zeichen nicht das erste Zeichen ist, geben Sie false zurück.

Beispiel

#include <bits/stdc++.h>
using namespace std;
bool isValidUpperCase(string str){
   for (int i = 1; i < str.length(); i++){
      // If str[i] is in lower case and str[i-1] is in upper case, handle the case
      if (str[i] - 'A' >= 32 && str[i - 1] - 'A' < 32) {     // If the str[i-1] is the first character, continue the loop. Otherwise, return false.
         if (i - 1 == 0)
            continue;
         return false;
      }
      // If str[i] is in upper case and str[i-1] is in lower case, return false.
      else if (str[i] - 'A' < 32 && str[i - 1] - 'A' >= 32) {
         return false;
      }
   }
   // Return true
   return true;
}
int main(){
   string str1 = "TutorialsPoint";
   string str2 = "tutorialspoint";
   string str3 = "Tutorialspoint";
   string str4 = "TUTORIALSPOINT";
   cout << str1 << " : " << (isValidUpperCase(str1) ? "Valid" : "Not valid") << endl;
   cout << str2 << " : " << (isValidUpperCase(str2) ? "Valid" : "Not valid") << endl;
   cout << str3 << " : " << (isValidUpperCase(str3) ? "Valid" : "Not valid") << endl;
   cout << str4 << " : " << (isValidUpperCase(str4) ? "Valid" : "Not valid") << endl;
   return 0;
}
Nach dem Login kopieren

Ausgabe

TutorialsPoint : Not valid
tutorialspoint : Valid
Tutorialspoint : Valid
TUTORIALSPOINT : Valid
Nach dem Login kopieren
Nach dem Login kopieren
  • Zeitkomplexität - O(N), da zum Durchlaufen der Zeichenfolge die Verwendung einer Schleife erforderlich ist.

  • Raumkomplexität − O(1), da kein zusätzlicher Raum benötigt wird.

Fazit

In diesem Tutorial hat der Benutzer gelernt, zu überprüfen, ob eine Zeichenfolge gültige Großbuchstaben enthält. Wir haben zwei verschiedene Methoden gelernt. Im ersten Ansatz zerlegen wir das Problem in drei Teile und im zweiten Ansatz überprüfen wir die Groß- und Kleinschreibung benachbarter Elemente. Die zeitliche und räumliche Komplexität beider Codes ist jedoch ähnlich, der Code der zweiten Methode ist jedoch besser lesbar.

Das obige ist der detaillierte Inhalt vonÜberprüfen Sie, ob Großbuchstaben in einer Zeichenfolge korrekt verwendet werden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage