Förberedelse inför kodningsintervjuer · Lektion

Palindromkontroller på rätt sätt

Jämför effektivt från båda ändarna

Lektion 3 av 413 steg

Palindromkontroller på rätt sätt är en gratis lektion i Förberedelse inför kodningsintervjuer på CoddyKit. Detta är lektion 3 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Förberedelse inför kodningsintervjuer, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Förberedelse inför kodningsintervjuer innehåller totalt 4 lektioner.

Vad är ett palindrom

Ett palindrom läses likadant framifrån och bakifrån, som racecar eller level. Att kontrollera detta är en klassisk uppvärmningsuppgift. 🔁

Slice-knepet

Python kan vända en sträng med slicen s[::-1]. Jämför den med originalet så har Du en kontroll på en enda rad.

s = 'level'
print(s == s[::-1])  # True

Slice kräver extra minne

Slice-metoden är kort, men skapar en hel omvänd kopia. För mycket stora strängar kan det extra minnet spela roll under strikta begränsningar.

Metoden med två pekare

Placera en pekare i början och en i slutet. Jämför dem och flytta dem inåt. Detta använder O(1) extrautrymme.

i, j = 0, len(s) - 1
while i < j:
    if s[i] != s[j]:
        break
    i += 1; j -= 1

Stanna i mitten

Pekarna behöver bara mötas halvvägs. När i inte är mindre än j har varje par matchats och strängen är ett palindrom.

Avvikelse innebär att Du kan stanna tidigt

Loopen med två pekare kan return False så snart ett par skiljer sig åt. Du behöver sällan gå igenom hela strängen, vilket ger en fin snabbhetsvinst.

def is_pal(s):
    i, j = 0, len(s) - 1
    while i < j:
        if s[i] != s[j]: return False
        i += 1; j -= 1
    return True

Båda är O(n)

Oavsett metod berör Du varje tecken högst en gång, så båda körs på linjär tid. Den enda skillnaden är hur mycket extra minne de använder.

Normalisera först

Många problem bortser från skiftläge och blanksteg. Rensa strängen först genom att göra alla bokstäver gemener och bara behålla bokstäver och siffror.

raw = 'A man, a plan'
clean = ''.join(c.lower() for c in raw if c.isalnum())

Kontrollera sedan den rensade strängen

När strängen är normaliserad kör Du det vanliga palindromtestet på den rensade versionen. Det är standardmönstret för palindromiska meningar.

print(clean == clean[::-1])

Pekare hoppar över icke-bokstäver

I stället för att rensa först kan två pekare hoppa över alla icke-alfanumeriska tecken direkt i strängen. Då behöver Du inte skapa en andra sträng alls.

Palindromiska delsträngar

Svårare uppgifter handlar om palindromiska delsträngar. Grundidén är att expandera kring mitten: väx utåt från varje position så länge ändarna matchar.

Snabbkontroll

En fråga om palindromkontroller.

Sammanfattning

Nu kan Du kontrollera palindrom med en snabb slice eller med minnessnåla tvåpekarlösningar och normalisera stökig indata före testet. 🎉

Gratis att börja

Lär dig Förberedelse inför kodningsintervjuer med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
90
Lektioner
360

Vanliga frågor

Är lektionen ”Palindromkontroller på rätt sätt” gratis?

Ja – hela texten till ”Palindromkontroller på rätt sätt” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Förberedelse inför kodningsintervjuer, kan Ni uppgradera till CoddyKit PRO. Kursen i Förberedelse inför kodningsintervjuer innehåller totalt 4 lektioner.

Vad lär jag mig i ”Palindromkontroller på rätt sätt”?

Jämför effektivt från båda ändarna Ni övar på Förberedelse inför kodningsintervjuer med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Förberedelse inför kodningsintervjuer?

Du behöver inga förkunskaper. Utbildningen i Förberedelse inför kodningsintervjuer på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.

Hur lång tid tar lektionen ”Palindromkontroller på rätt sätt”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Förberedelse inför kodningsintervjuer-lektionen?

Ja. Varje Förberedelse inför kodningsintervjuer-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Teckentrick med ord och chr
  2. Räkna bokstäver med en frekvenstabell
  3. Palindromkontroller på rätt sätt
  4. Dela upp, rensa och sammanfoga ord
← Tillbaka till Förberedelse inför kodningsintervjuer