Ich helfe einem Freund, eine Funktion zu schreiben, die eine Zeichenfolge von Leerzeichen-getrennten Wörtern nimmt und die längste zurückgibt, aber mein Code fehlschlägt 2 aus den 3 Tests, die es zu überprüfen.Funktion schlägt 2 von 3 Tests fehl
Dies sind die Tests:
describe("test for longest function functionality", function() {
it("should return correct output for normal strings", function() {
expect(longest("A")).toEqual("A");
expect(longest("I love Avatar")).toEqual("Avatar");
expect(longest("The stupidities of youth")).toEqual("stupidities");
});
it("should return correct output for gibberish", function() {
expect(longest("hgdydrxtfEq Rradsc tstsa taeWwwec fgdd")).toEqual("hgdydrxtfEq");
});
it("should work for sentences with numbers", function() {
expect(longest("This is a sentence with a number 7685838788")).toEqual("7685838788");
});
});
Dies ist meine Lösung so weit:
function longest(str) {
var longestStart = 0;
var longestEnd = 0;
var current = 0;
var currentLength = 0;
while (current < str.length) {
if (str.charAt(current) == ' ') {
if (currentLength > (longestEnd - longestStart)) {
longestStart = (current - currentLength);
longestEnd = current;
}
currentLength = 0;
} else {
currentLength++;
}
current++;
}
return str.substring(longestStart, longestEnd);
}
Bitte zeigen Sie, welche Ihrer Tests nicht besteht. –
@TatsuyukiIshi Test 1 und 3, um spezifisch zu sein – Wafaw123
Total Specs: 3 Totalausfälle: 2 1. Test für längste Funktionsfunktionalität sollte korrekte Ausgabe für normale Strings liefern Erwartet '' gleich 'A'. Erwartete 'Liebe', 'Avatar' gleich zu sein. 2. Test für die längste Funktionsfunktionalität sollte für Sätze mit Zahlen funktionieren Erwarteter "Satz" gleich "7685838788". – Wafaw123