suchen
HeimBackend-EntwicklungC++Ersetzen Sie mit einem C++-Programm alle Konsonanten in der Zeichenfolge durch den nächsten Vokal

Ersetzen Sie mit einem C++-Programm alle Konsonanten in der Zeichenfolge durch den nächsten Vokal

Diese Methode zielt darauf ab, eine Folge von Konsonanten durch die nächsten Vokale im Alphabet (auch als lateinische Kleinbuchstaben bezeichnet) zu ersetzen. Wenn zwei Vokale gleich nahe beieinander liegen, können wir sie durch den ersten Vokal in diesen Buchstaben ersetzen.

Schauen wir uns einige Eingabeszenarien an -

Angenommen, wir haben eine Zeichenfolge wie „ebgkjasjd“, jetzt müssen wir alle Vorkommen von Konsonanten in der Zeichenfolge durch die nächsten Vokale ersetzen.

Input = "ebgkjasjd";
Result =
ebgkjasjd
eaeiiauie

Ersetzen Sie das Element „b“ durch „a“, da es der nächste Vokal ist. Wir hätten das Element „g“ durch „e“ oder „i“ ersetzen können, da beide gleich aktuell sind, aber wir entscheiden uns dafür, es durch „e“ zu ersetzen, da es zuerst kam. Das Gleiche gilt für alle anderen Elemente in der Zeichenfolge.

Angenommen, die Eingabezeichenfolge enthält beispielsweise keine Vokale, betrachten Sie eine Zeichenfolge: „sdfhgtykl“, die resultierende Ausgabe ist -

Input = "sdfhgtykl";
Result =
sdfhgtykl
ueeieuuii

Für das erste Element „s“ kommt der Vokal „u“ am nächsten, also ersetzen Sie „s“ durch „u“. Wie alle anderen Elemente im Array sind sie Konsonanten. Diese Situation ergibt auch die Worst-Case-Komplexität der Methode.

Algorithmus

  • Durchlaufen Sie die Eingabezeichenfolge ausgehend vom Startindex.

  • Wenn ein Konsonant angetroffen wird, wird die Anzahl der Buchstaben von diesem Konsonanten bis zu den beiden nächsten Vokalen links und rechts gezählt. Wählen Sie Vokale mit weniger Buchstaben.

  • Dieser Vorgang wird wiederholt, bis alle Konsonanten in der Zeichenfolge durchlaufen wurden.

  • Die erhaltene Ausgabe ist die ersetzte Zeichenfolge.

Beispiel

Der folgende Code ist in C++ implementiert, um alle Konsonanten in einer Zeichenfolge durch die nächsten Vokale im Alphabet zu ersetzen -

#include <iostream>
using namespace std;
void solve(string& s) {
   for(char &ch : s) {
      if(ch>'a' && ch<'e') {
         if(ch-'a' <= 'e'-ch) ch='a';
         else ch='e';
      } else if(ch>'e' && ch<'i') {
         if(ch-'e' <= 'i'-ch) ch='e';
         else ch='i';
      } else if(ch>'i' && ch<'o') {
         if(ch-'i' <= 'o'-ch) ch='i';
         else ch='o';
      } else if(ch>'o' && ch<'u') {
         if(ch-'o' <= 'u'-ch) ch='o';
         else ch='u';
      } else if(ch>'u') {
         ch = 'u';
      }
   }
}
int main() {
   string s = "ibgshzjbsh";
   cout << s << "\n";
   solve(s);
   cout << s;
   return 0;
}

Ausgabe

“ibgshzjbsh”
“iaeuiuiaui”

Beispiel

Ein besserer Ansatz besteht jedoch darin, ein Array zu verwenden und für jedes Zeichen die Antwort mit dem nächsten Zeichen zu speichern, anstatt viele Wenn-Sonst-Bedingungen zu verwenden.

#include <iostream>
#include <vector>
using namespace std;
string solve(string s) {
   string hash = "aaaeeeeiiiiioooooouuuuuuuu";
   for (int i=0;i<s.size();i++) {
      s[i] = hash[s[i]-'a'];
   }
   return s;
}
int main() {
   string s = "ibgshzjbsh";
   cout << solve(s);
   return 0;
}

Ausgabe

iaeuiuiaui

Fazit

Wir können ein Element ersetzen, indem wir es finden und durch das nächstgelegene Zeichen ersetzen. Die zeitliche Komplexität des Durchlaufens einer Zeichenfolge beträgt O(n). Die zweite Methode ist einfacher zu verstehen und zu programmieren und weniger umständlich. Die zeitliche Komplexität beträgt ebenfalls O(n), da wir die Zeichenfolge nur einmal durchlaufen.

Das obige ist der detaillierte Inhalt vonErsetzen Sie mit einem C++-Programm alle Konsonanten in der Zeichenfolge durch den nächsten Vokal. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Dieser Artikel ist reproduziert unter:tutorialspoint. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
php怎么将16进制字符串转为数字php怎么将16进制字符串转为数字Oct 26, 2021 pm 06:36 PM

php将16进制字符串转为数字的方法:1、使用hexdec()函数,语法“hexdec(十六进制字符串)”;2、使用base_convert()函数,语法“bindec(十六进制字符串, 16, 10)”。

php怎么将字符串转换成小数php怎么将字符串转换成小数Mar 22, 2023 pm 03:22 PM

PHP 是一门功能强大的编程语言,广泛应用于 Web 开发领域。其中一个非常常见的情况是需要将字符串转换为小数。这在进行数据处理的时候非常有用。在本文中,我们将介绍如何在 PHP 中将字符串转换为小数。

golang怎么检测变量是否为字符串golang怎么检测变量是否为字符串Jan 06, 2023 pm 12:41 PM

检测变量是否为字符串的方法:1、利用​“%T”格式化标识,语法“fmt.Printf("variable count=%v is of type %T \n", count, count)”;2、利用reflect.TypeOf(),语法“reflect.TypeOf(变量)”;3、利用reflect.ValueOf().Kind()检测;4、使用类型断言,可以对类型进行分组。

php 字符串长度不一致怎么办php 字符串长度不一致怎么办Feb 07, 2023 am 09:58 AM

php字符串长度不一致的解决办法:1、通过mb_detect_encoding()函数查看字符串的编码方式;2、通过mb_strlen函数查看具体字符长度;3、使用正则表达式“preg_match_all('/[\x{4e00}-\x{9fff}]+/u', $str1, $matches);”剔除非中文字符即可。

go语言怎么删除字符串中的空格go语言怎么删除字符串中的空格Jan 17, 2023 pm 02:31 PM

删除方法:1、使用TrimSpace()函数去除字符串左右两边的空格,语法“strings.TrimSpace(str)”;2、使用Trim()函数去除字符串左右两边的空格,语法“strings.Trim(str, " ")”;3、使用Replace()函数去除字符串的全部空格,语法“strings.Replace(str, " ", "", -1)”。

php字符串函数学习:怎么去掉前面的字符php字符串函数学习:怎么去掉前面的字符Mar 20, 2023 pm 02:33 PM

在开发PHP应用程序时,有时我们需要去掉字符串前面的某些特定字符或者字符串。在这种情况下,我们需要使用一些PHP函数来实现这一目标。本文将介绍一些PHP函数,帮助您轻松地去掉字符串前面的字符或字符串。

php怎么将字符串转为布尔类型php怎么将字符串转为布尔类型Jul 01, 2021 pm 06:36 PM

转换方法:1、在转换变量前加上用括号括起来的目标类型“(bool)”或“(boolean)”;2、用boolval()函数,语法“boolval(字符串)”;3、用settype()函数,语法“settype(变量,"boolean")”。

php字符串部分乱码怎么办php字符串部分乱码怎么办Jan 20, 2023 am 10:18 AM

php字符串部分乱码的解决办法:1、使用“mb_substr(strip_tags($str),0,-1,'UTF-8');”截取字符串;2、使用“iconv("UTF-8","GB2312//IGNORE",$data)”转换字符集即可。

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SecLists

SecLists

SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

Sicherer Prüfungsbrowser

Sicherer Prüfungsbrowser

Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.

EditPlus chinesische Crack-Version

EditPlus chinesische Crack-Version

Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

mPDF

mPDF

mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),