Lettcode_7_Reverse Integer -- 뒤 집기 정수
Reverse Integer
Reverse digits of an integer.
Example1: x = 123, return 321 Example2: x = -123, return -321
생각:
(1) 이 알고리즘 문 제 는 OJ 에서 비교적 간단 한 문제 에 속한다.제 의 는 주어진 정 수 를 역순 으로 하 는 것 이지 만 몇 가지 특수 한 상황 과 관련 되 어 고려 해 야 한 다 는 것 이다.
(2) 처리 하기 편리 하도록 정 수 를 문자열 로 변환 합 니 다.우 리 는 이 문자열 을 한 번 만 옮 겨 다 니 면 된다.
(3) 옮 겨 다 니 는 과정 에서 양음 수 를 판단 해 야 한다. 문자열 의 길이 가 0 보다 클 때 첫 번 째 문 자 를 먼저 취하 여 '-' 인지 아 닌 지 를 판단 하고 같다 면
바로 음수 입 니 다. 표지 위 치 를 설정 해 야 합 니 다.
(4) 계속 옮 겨 다 니 는 과정 에서 문자 가 숫자 인지 아 닌 지 를 판단 한 다음 에 표지 위 치 를 통 해 정 부 를 판단 한 후에 누적 작업 을 한다.
(5) 주의해 야 할 때 뒤 집 힌 후의 정 수 는 int 의 최대 치 를 초과 할 수 있 습 니 다. 경 계 를 넘 지 않도록 우리 가 정의 하 는 sun 의 유형 은 반드시 long 이 어야 합 니 다. 이렇게 하면 크 거나 크 거나
int 의 최대 값 과 최소 값 보다 작 을 때 0 을 되 돌려 줍 니 다.나머지 상황 은 log 강 을 int 로 바 꾸 고 결 과 를 되 돌려 줍 니 다.
(6) 상기 몇 가지 측면 에 주의 한 후에 OJ 가 통과 하 는 데 문제 가 없 을 것 이다.
알고리즘 구현 코드 는 다음 과 같 습 니 다. (도움 이 되 기 를 바 랍 니 다. 감사합니다.)
public static int reverse(int x) {
String s = String.valueOf(x);
long sum = 0;
boolean isnegitive = false;
for (int i = s.length()-1; i >=0 ; i--) {
if(s.charAt(0)=='-'){
isnegitive = true;
}
if( Character.isDigit(s.charAt(i))){
if(isnegitive){
sum = sum * 10 - Integer.parseInt(String.valueOf(s.charAt(i)));
}else{
sum = sum * 10 + Integer.parseInt(String.valueOf(s.charAt(i)));
}
}
}
if(sum>Integer.MAX_VALUE || sum<Integer.MIN_VALUE){
return 0;
}
return (int)sum;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.