Heim > Backend-Entwicklung > C++ > Hauptteil

Prüfen Sie, ob die Zeichen jedes Wortes neu angeordnet werden können, um eine arithmetische Folge (AP) zu bilden.

王林
Freigeben: 2023-09-08 20:53:08
nach vorne
1119 Leute haben es durchsucht

Prüfen Sie, ob die Zeichen jedes Wortes neu angeordnet werden können, um eine arithmetische Folge (AP) zu bilden.

In diesem Artikel besprechen wir, wie man überprüft, ob die Zeichen jedes Wortes in einer bestimmten Zeichenfolge neu angeordnet werden können, um eine arithmetische Folge (AP) zu bilden. Wir werden die Lösung auch mit C++ implementieren und ein Beispiel bereitstellen, um die Funktionsweise des Codes zu veranschaulichen.

Arithmetische Folge (AP)

Eine arithmetische Folge (AP) ist eine Zahlenfolge, bei der jeder Term durch Addition einer Konstante d zum vorherigen Term erhalten wird. Die Konstante d wird Toleranz genannt.

Zum Beispiel ist die Folge 1, 3, 5, 7, 9 eine arithmetische Folge mit einer Toleranz von 2.

Methode

Um zu überprüfen, ob die Zeichen jedes Wortes in einer bestimmten Zeichenfolge neu angeordnet werden können, um eine arithmetische Folge zu bilden, gehen wir wie folgt vor: −

  • Wir werden die gegebene Zeichenfolge in einzelne Wörter aufteilen.

  • Für jedes Wort sortieren wir die Zeichen alphabetisch.

  • Wir berechnen die Toleranz benachbarter Zeichen in sortierten Wörtern.

  • Wenn die Toleranz für alle Paare benachbarter Zeichen gleich ist, können die Zeichen des Wortes neu angeordnet werden, um eine arithmetische Folge zu bilden.

  • Wir wiederholen die Schritte 2-4 für alle Wörter in der angegebenen Zeichenfolge.

  • Wenn alle Wörter neu angeordnet werden können, um eine arithmetische Folge zu bilden, dann geben wir true zurück. Andernfalls wird false zurückgegeben.

Beispiel

Lassen Sie uns die obige Methode in C++ implementieren -

#include <iostream>
#include <vector>
#include <string>
#include <algorithm>

using namespace std;

bool canFormAP(string s) {
   vector<string> words;
   string word = "";
   for(char c : s) {
      if(c == ' ') {
         words.push_back(word);
         word = "";
      } else {
         word += c;
      }
   }
   words.push_back(word);
   for(string w : words) {
      sort(w.begin(), w.end());
      int n = w.length();
      if(n <= 2) {
         continue;
      }
      int d = w[1] - w[0];
      for(int i = 2; i < n; i++) {
         if(w[i] - w[i-1] != d) {
            return false;
         }
      }
   }
   return true;
}

int main() {
   string s = "tutorialspoint";
   if(canFormAP(s)) {
      cout << "Characters of each word can be rearranged to form an Arithmetic Progression\n";
   } else {
      cout << "Characters of each word cannot be rearranged to form an Arithmetic Progression\n";
   }
   return 0;
}
Nach dem Login kopieren

Ausgabe

Characters of each word cannot be rearranged to form an Arithmetic Progression
Nach dem Login kopieren

Im obigen Code akzeptiert die Funktion canFormAP eine Zeichenfolge s als Eingabe und gibt true zurück, wenn die Zeichen jedes Wortes in der Zeichenfolge neu angeordnet werden können, um eine arithmetische Folge zu bilden. Die Hauptfunktion ruft die Funktion canFormAP auf, verwendet die Zeichenfolge „Hallo Welt“ als Eingabe und gibt die entsprechende Nachricht basierend auf dem Rückgabewert der Funktion aus.

Beispieltestfälle

Betrachten wir einen Beispieltestfall, um zu verstehen, wie der obige Code funktioniert -

string s = "the quick brown fox jumps over the lazy dog";
Nach dem Login kopieren

In diesem Beispiel lautet die angegebene Zeichenfolge „Der schnelle Braunfuchs springt über den faulen Hund“. Jedes Wort in einer Zeichenfolge kann neu angeordnet werden, um eine arithmetische Folge zu bilden. Beispielsweise kann das Wort „quick“ mit einer Toleranz von 2 in die Rechenfolge „cikqu“ umgeordnet werden. Wie wir besprochen haben, kann das Wort „faul“ mit einer Toleranz von 11 in die arithmetische Folge „alzy“ umgeordnet werden.

In diesem Beispiel können also die Zeichen jedes Wortes in der angegebenen Zeichenfolge neu angeordnet werden, um eine arithmetische Folge zu bilden, und die Ausgabe des Codes lautet „Die Zeichen können neu angeordnet werden, um eine arithmetische Folge zu bilden.“

Fazit

In diesem Artikel haben wir besprochen, wie man überprüft, ob die Zeichen jedes Wortes in einer bestimmten Zeichenfolge neu angeordnet werden können, um eine arithmetische Folge (AP) zu bilden. Wir haben einen einfachen Ansatz gewählt, bei dem wir die Zeichen jedes Wortes sortieren und prüfen, ob die Toleranzen zwischen benachbarten Zeichenpaaren gleich sind. Wir stellen außerdem ein Beispiel für die Implementierung der Lösung in C++ bereit und erläutern es anhand eines Beispieltestfalls.

Diese Frage kann verschiedene praktische Anwendungen haben. Beispielsweise kann in der Kryptographie die Neuanordnung der Zeichen einer Zeichenfolge zum Verschlüsseln der ursprünglichen Nachricht verwendet werden, und die Überprüfung, ob die Zeichen neu angeordnet werden können, um eine arithmetische Folge zu bilden, kann als Verifizierungsschritt im Entschlüsselungsprozess verwendet werden.

Das obige ist der detaillierte Inhalt vonPrüfen Sie, ob die Zeichen jedes Wortes neu angeordnet werden können, um eine arithmetische Folge (AP) zu bilden.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!