기록 3 - 숫자 반전

1294 단어
기록 3
문제: 32 비트 의 기호 비트 정 수 를 제시 하고 정 수 를 뒤 집 습 니 다.(정수 저장 범 위 는 [- 231, 231 - 1] 에 있 습 니 다. 뒤 집 힌 정수 가 넘 치면 0 으로 돌아 갑 니 다) 예: input: 123, output: 321 input: - 123, ouput: 321 input: 120, output: 21 사고: 이 문 제 를 풀 때 오랫동안 스 택 을 사용 할 생각 을 하지 못 했 습 니 다. 자신의 데이터 구 조 는 정말 헛 된 것 을 발 견 했 습 니 다.반전 문제 와 관련 하여 가장 먼저 생각해 야 할 것 은 창고 로 해결 하 는 것 이다.정수 형식 을 String 형식 으로 바 꾸 면 연결 이 잘 됩 니 다.과정 에서 기호의 문 제 를 고려 해 야 한다. 문 자 를 스 택 에 들 어 갈 때 다음 첫 번 째 가 '-' 인지 먼저 판단 해 야 한다. 만약 그렇다면 기 호 는 스 택 에 들 어가 지 말 아야 한다.다음은 코드:
class Solution {
    public int reverse(int x) {
        String input = String.valueOf(x);
        Stack s = new Stack(); //java     
        
        for(int i = 0;i(Math.pow(2.0,31)-1)){
            return 0;
        }
        else if(input.charAt(0)=='-')
            return -Integer.parseInt(output);
        else
            return Integer.parseInt(output);
    }
}

시간 복잡 도: O (s. length (), 공간 복잡 도 O (s. length ();스 택 으로 숫자 반전 문 제 를 해결 하 는 것 은 좋 은 해결 방법 이지 만 숫자 반전 에 대해 서 는 더욱 간결 하고 편리 한 방법 이 있 으 며 숫자 를 문자열 로 바 꾸 지 않 아 도 된다.
//pop  ,     
pop = number % 10;
number /= 10;
//    
rev = rev * 10 + pop;

좋은 웹페이지 즐겨찾기