C++ :: Aufgabe #357
1 Lösung

Zweitgrößte Ziffer eines alphanumerischen Textes
Anfänger - C++
von JKooP
- 18.04.2021 um 11:04 Uhr
Gegeben ist ein alphanumerischer Text (String) der nur Kleinbuchstaben und die positiven Ziffern 0-9 enthält.
Ziel soll es sein, die zweitgrößte Ziffer (nicht Index) des Textes zu ermitteln.
Ist kein zweitgrößter Wert enthalten, soll als Ergebnis -1 ausgegeben werden.
Beispiele:
t = "abc12321efg"
Lösung: 2 => [1, 2, 3]
t = "abc111def"
Lösung: -1 => [1] Kein zweiter Wert vorhanden!
Erstelle eine Methode/Funktion, die obige Aufgabenstellung umsetzt.
Viel Spaß
Ziel soll es sein, die zweitgrößte Ziffer (nicht Index) des Textes zu ermitteln.
Ist kein zweitgrößter Wert enthalten, soll als Ergebnis -1 ausgegeben werden.
Beispiele:
t = "abc12321efg"
Lösung: 2 => [1, 2, 3]
t = "abc111def"
Lösung: -1 => [1] Kein zweiter Wert vorhanden!
Erstelle eine Methode/Funktion, die obige Aufgabenstellung umsetzt.
Viel Spaß
Lösungen:
C++ 17
C-Code

#include <iostream> #include <string> using namespace std; int second_highest(string s) { int a[10]{ 0 }; auto n{ 0 }; for (const auto& c : s) if (c >= '0' && c <= '9') a[c - '0']++; for (auto i{ 0 }; i < 10; i++) { if (a[i] != 0) n++; if (n == 2) return i; } return -1; } int main() { string s{ "abc12321efg" }; cout << second_highest(s) << "\n"; }