PHP :: Aufgabe #346 :: Lösung #1
2 Lösungen

#346
Noch mehr Mustervergleiche (word pattern)
Fortgeschrittener - PHP
von JKooP
- 17.04.2021 um 19:10 Uhr
Gegeben ist ein Text (String), der ausschließlich aus kleingeschriebenen Wörtern besteht,
welche durch Leerzeichen getrennt sind.
Weiterhin gibt es eine Sequenz (String) mit der der Text verglichen werden soll (Mustergleichheit).
Beispiele:
t = "hund katze katze hund"
s = "abba"
Lösung: wahr => a = hund; b = katze; b = katze; a = hund
t = "hund katze maus hund"
s = "abba"
Lösung: falsch => a = hund; b = katze; b = maus; a = hund (b ist unterschiedlich)
t = "hund hund hund hund"
s = "aaa"
Lösung: falsch => Anzahl stimmt nicht überein
Schreibe eine Methode/Funktion, mit der man die Mustergleichheit überprüfen kann.
Als fakultative Herausforderung: ohne die implementierten Funktionen wie etwa Dictionary, map, set, zip, etc.
Viel Spaß
welche durch Leerzeichen getrennt sind.
Weiterhin gibt es eine Sequenz (String) mit der der Text verglichen werden soll (Mustergleichheit).
Beispiele:
t = "hund katze katze hund"
s = "abba"
Lösung: wahr => a = hund; b = katze; b = katze; a = hund
t = "hund katze maus hund"
s = "abba"
Lösung: falsch => a = hund; b = katze; b = maus; a = hund (b ist unterschiedlich)
t = "hund hund hund hund"
s = "aaa"
Lösung: falsch => Anzahl stimmt nicht überein
Schreibe eine Methode/Funktion, mit der man die Mustergleichheit überprüfen kann.
Als fakultative Herausforderung: ohne die implementierten Funktionen wie etwa Dictionary, map, set, zip, etc.
Viel Spaß
#1

von tnle (120 Punkte)
- 31.05.2021 um 14:55 Uhr

<?php function checkMuster($values, $keys, $res= ''){ if (empty($keys)) return $res == '' ? "empty" : $res; else if ( count($keys) != count($values) ) return "count is diffrence"; $compareKey = array_splice($keys, 0, 1)[0]; $compareValue = array_splice($values, 0, 1)[0]; $count = count($keys); for($i = $count - 1; $i >= 0 ; $i--){ if ($keys[$i] == $compareKey) { if ($compareValue != $values[$i]){ return "$compareKey => $compareValue difference $keys[$i] => $values[$i]"; } array_splice($keys, $i, 1); array_splice($values, $i, 1); } } $res = "true"; return checkMuster($values, $keys, $res); }; $strValue = 'dog cathh cat dog'; $strKey = 'abba'; echo checkMuster(explode(' ', $strValue), str_split($strKey));
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1