Je veux aussi brosser le nombre de palindromes de 03 (laver et dormir)

Déterminez si un entier est un palindrome. Le nombre palindrome fait référence au même entier dans l'ordre positif (de gauche à droite) et dans l'ordre inverse (de droite à gauche).
Exemple 1:
Entrée: 121
Sortie: vrai
Exemple 2:
Entrée: -121
Sortie: faux
Explication: Lecture de gauche à droite, c'est -121. En lisant de droite à gauche, c'est 121-. Ce n'est donc pas un palindrome.
Exemple 3:
Entrée: 10
Sortie: faux
Explication: Lecture de droite à gauche, il est 01. Ce n'est donc pas un palindrome.
Avancé:
pouvez-vous résoudre ce problème sans convertir des entiers en chaînes?
Solution un

public static class Solution1 {
    
    
	public boolean isPalindrome(int x) {
    
    
		if (x == 0) {
    
    
			return true;
		}
		if (x < 0) {
    
    
			return false;
		}
		int rev = 0;
		int tmp = x;
		while (tmp != 0) {
    
    
			rev *= 10;
			rev += tmp % 10;
			tmp /= 10;
		}
		return rev == x;
	}
}

Solution deux:

public static class Solution2 {
    
    
	public boolean isPalindrome(int x) {
    
    
		if (x < 0) {
    
    
			return false;
		} else if (x == 0) {
    
    
			return true;
		} else if (x % 10 == 0) {
    
    
			return false;
		}
		int reversed = 0;
		while (x > reversed) {
    
    
			int digit = x % 10;
			reversed *= 10;
			reversed += digit;
			x /= 10;
		}
		return (x == reversed || x == reversed / 10);
	}
}

Je suppose que tu aimes

Origine blog.csdn.net/qq_45864370/article/details/108632565
conseillé
Classement