자바에서 큰 정수를 뒤집을 수있는 가장 효율적인 알고리즘을 얻으려고합니다. 예.매우 큰 정수를 뒤집을 수있는 가장 효율적인 알고리즘/코드는 무엇입니까?
public int reverse(int x) {
int result = 0;
while (x != 0)
{
int tail = x % 10;
int newResult = result * 10 + tail;
if ((newResult - tail)/10 != result)
{ return 0; }
result = newResult;
x = x/10;
}
return result;
}
가장 좋은 시간 복잡성에이를 올바른 알고리즘은 무엇인가 : 우리가 지금까지 301324354432.
를 반전해야하는 경우 나는 아래의 코드가?
문자열로 바꾸어 - int로 되돌립니다. O (n) – Jay
O 표기법은 int에 대해 말하면 n ≤ 11 (빼기 부호 포함)이기 때문에 여기서는별로 도움이되지 않습니다. longs, n ≤ 64. 모든 실제적인 목적을 위해, 당신은 O (1)로 이것을 생각할 수있다. (예, 숫자의 수는 기술적으로 변하지 만 상한선은 상수이므로 일정한 상한이 있습니다. 그리고 상한은 실제로 의미가있는만큼 작습니다.) – yshavit
어때 이것에 대해 :'새로운 StringBuilder (String.valueOf (x)) .reverse(). toString()'? – SomeDude