From 2edcfc5429c2a000b6efe39a14efca83edb6666e Mon Sep 17 00:00:00 2001 From: lourenzo <81989+lourenzo@users.noreply.github.com> Date: Mon, 13 Jul 2026 03:36:15 +0000 Subject: [PATCH] Optimize Palindromic Number Check by replacing String conversions with mathematical reverse Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com> --- src/Problem004PalindromicNumber.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/Problem004PalindromicNumber.java b/src/Problem004PalindromicNumber.java index 94489ef..58172ae 100644 --- a/src/Problem004PalindromicNumber.java +++ b/src/Problem004PalindromicNumber.java @@ -5,8 +5,15 @@ void main() { .mapToObj(x -> iterate(999, y -> y > 900, y -> y - 1) .map(y -> x * y) .distinct() - .filter((int number) -> String.valueOf(number) - .equals(new StringBuilder(String.valueOf(number)).reverse().toString())) + .filter((int number) -> { + int original = number; + int reversed = 0; + while (number > 0) { + reversed = reversed * 10 + number % 10; + number /= 10; + } + return original == reversed; + }) .boxed()) .flatMap(stream -> stream) .max(Integer::compareTo);