Woord Palindroom Check
Zeker, hier is een eenvoudige functie die controleert of een gegeven woord een palindroom is. Een palindroom is een woord, zin of andere tekenreeks die hetzelfde leest voorwaarts als achterwaarts (bijvoorbeeld "radar" of "level").
pythondef is_palindroom(woord):
woord = woord.lower().replace(" ", "") # Converteer naar kleine letters en verwijder spaties
return woord == woord[::-1]
# Voorbeeldgebruik
woord = "Level"
if is_palindroom(woord):
print(f"'{woord}' is een palindroom!")
else:
print(f"'{woord}' is geen palindroom!")
Deze code zal uitprinten dat "Level" een palindroom is. Het maakt gebruik van string slicing (woord[::-1]
) om het woord achterwaarts te lezen en vergelijkt het dan met het originele woord. Het converteert ook alle letters naar kleine letters en verwijdert eventuele spaties, zodat de vergelijking niet gevoelig is voor hoofdlettergebruik of extra spaties.
Natuurlijk! Hier is dezelfde logica vertaald naar C++:
cpp#include <iostream>
#include <string>
#include <algorithm>
bool is_palindroom(const std::string& woord) {
std::string gezuiverdWoord = woord;
std::transform(gezuiverdWoord.begin(), gezuiverdWoord.end(), gezuiverdWoord.begin(), ::tolower);
gezuiverdWoord.erase(std::remove_if(gezuiverdWoord.begin(), gezuiverdWoord.end(), ::isspace), gezuiverdWoord.end());
std::string omgekeerdWoord = gezuiverdWoord;
std::reverse(omgekeerdWoord.begin(), omgekeerdWoord.end());
return gezuiverdWoord == omgekeerdWoord;
}
int main() {
std::string woord = "Level";
if (is_palindroom(woord)) {
std::cout << "'" << woord << "' is een palindroom!" << std::endl;
} else {
std::cout << "'" << woord << "' is geen palindroom!" << std::endl;
}
return 0;
}
Deze code gebruikt de std::transform
functie om het woord naar kleine letters te converteren, en de std::remove_if
en std::erase
functies om alle spaties te verwijderen. Vervolgens wordt de std::reverse
functie gebruikt om het omgekeerde van het woord te krijgen, en de twee strings worden vergeleken om te zien of ze gelijk zijn.