whycomputer.com >> Datornätverk >  >> Programvara

Kontrollera om en sträng är Palindrom i Java och Python

Kontrollera om en sträng är Palindrom i Java och Python

Att avgöra om en sträng är ett palindrom är en klassisk övning i intervjuer och lär oss om stränghantering, jämförelse och ibland loopar. Frågan är kort och kan lösas inom intervjuens tidsramar.

Vad är ett palindrom?

Enligt synonym.com är ett palindrom "ett ord eller en fras som läses lika framåt som bakåt." Det betyder att om du skriver ordet i omvänd ordning blir det exakt samma text. Exempel på palindrom är "dad" och "mom"; "father" och "mother" är däremot inte. Ordet kommer från grekiska palin (igen) och dromos (väg). Det populariserades av engelska dramatikern Ben Jonson på 1600-talet.

Lösningar

  • Den vanligaste och enklaste metoden är att invertera strängen och sedan jämföra med originalet. Detta är O(n) eftersom inversionen är linjär.
  • Ett alternativ är att jämföra tecken från början och slutet, och sluta när du når mitten. Detta är också O(n), men du kan avsluta tidigt om ett missmatch hittas.

Palindrom i Python

Här är ett kort och tydligt exempel på hur du kontrollerar om en sträng är ett palindrom i Python:

def is_palindrome(s: str) -> bool:
    # Du kan välja att ignorera skiftläge och mellanslag om du vill
    s_clean = ''.join(ch.lower() for ch in s if ch.isalnum())
    return s_clean == s_clean[::-1]

# Exempel
print(is_palindrome("Dad"))        # False (skiftlägeskänsligt)
print(is_palindrome("dad"))       # True
print(is_palindrome("A man, a plan, a canal: Panama"))  # True

Palindrom i Java

Java-exempel med två olika tillvägagångssätt:

// Metod 1: Använd StringBuilder för att invertera
public static boolean isPalindrome(String s) {
    String reversed = new StringBuilder(s).reverse().toString();
    return s.equals(reversed);
}

// Metod 2: Jämför tecken från båda ändar
public static boolean isPalindromeLinear(String s) {
    int i = 0, j = s.length() - 1;
    while (i < j) {
        if (s.charAt(i) != s.charAt(j)) {
            return false;
        }
        i++;
        j--;
    }
    return true;
}

// Exempel
System.out.println(isPalindrome("Dad"));          // false
System.out.println(isPalindrome("dad"));          // true
System.out.println(isPalindromeLinear("A man, a plan, a canal: Panama"));  // true

Tips

  • Fråga intervjupersonen om du ska hantera skiftläge eller ignorera icke‑alfanumeriska tecken. Exempelvis: om koden är skiftlägeskänslig är "Dad" inte ett palindrom eftersom första tecknet är "D" och sista är "d".

URL:https://sv.whycomputer.com/programvara/1014018763.html

Programvara
  • Så justerar du datum och tid på din Windows-dator

    Så justerar du datum och tid på din Windows-dator Om din dator visar fel datum eller tid kommer alla filer du skapar eller sparar att få fel datum. Följ den här enkla guiden för att manuellt ställa in klockan och kalendern. Steg 1: Öppna datum- och tidskontrollpanelen Dubblettklicka på tidsfältet i

  • Hur du använder checkregistret i Quicken

    Att hålla koll på utgifter kan vara utmanande. Många av oss swipe sina kredit- eller betalkort utan att tänka på att registrera utgifterna i ett checkregister eller uppdatera saldot. Quicken gör hela processen smidig och snabb, så att du snabbt kan mata in transaktioner och sedan återgå till det du

  • Kontrollera meningsavstånd i Word

    Standardinställningarna i Microsoft Word 2010 och 2013 kollar inte meningsavstånd. Det innebär att du kan använda antingen ett eller två mellanslag efter ett punkttecken utan att Word varnar. Om du vill ha en konsekvent stil, ställ in antal mellanslag i grammatikkontrollens inställningar och kör en

Datornätverk © https://sv.whycomputer.com