Strings

Aufrufe: 870     Aktiv: 05.04.2020 um 13:34

-1

Also ich würde gerne die anzahl des Chars 'a' in einem unendlichen string längenbrenzt durch den userinput n herausfinden, habe aber das Problem das std::count viel zu lange braucht für strings in der grössenordnung von n= 1000000 etc. Was für andere möglichkeiten gäbe es

  #include < bits/stdc++.h>

using namespace std;

long repeatedString(string s, long n)

{

std::string added;
for (long i = n; i >= 0; i--)
{
    added += s;
}
added.resize(n);
size_t u = std::count(added.begin(), added.end(), 'a');
return u;

}

int main()

{

ofstream fout(getenv("OUTPUT_PATH"));

string s;
getline(cin, s);

long n;
cin >> n;
cin.ignore(numeric_limits<streamsize>::max(), '\n');

long result = repeatedString(s, n);

fout << result << "\n";

fout.close();

return 0;

}

Diese Frage melden
gefragt

Punkte: 5

 
Kommentar schreiben
1 Antwort
-1

Hallo Sparky, ich fürchte das wird nix. Du kannst ja den String in einer for Schleife selbst durchgehen und den gesuchten Wert mitzählen. Die Erfahrung sagt aber, dass normalerweise die build-in Funktionen schneller sind als selbstgeschriebene. Gruß jobe.

Diese Antwort melden
geantwortet

Sonstiger Berufsstatus, Punkte: 505

 

Kommentar schreiben