美文网首页计算机
Leetcode - Strobogrammatic Numbe

Leetcode - Strobogrammatic Numbe

作者: Richardo92 | 来源:发表于2016-09-22 23:02 被阅读38次

    My code:

    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.List;
    
    public class Solution {
        int[] map = new int[10];
        public List<String> findStrobogrammatic(int n) {
            List<String> ret = new ArrayList<String>();
            if (n <= 0) {
                return ret;
            }
            Arrays.fill(map, -1);
            map[0] = 0;
            map[1] = 1;
            map[6] = 9;
            map[8] = 8;
            map[9] = 6;
            char[] board = new char[n];
            helper(0, board.length - 1, n, board, ret);
            
            return ret;
        }
        
        private void helper(int begin, int end, int n, char[] board, List<String> ret) {
            if (begin > end) {
                ret.add(String.valueOf(board));
                return;
            }
            else if (begin == end) {
                board[n / 2] = '0';
                helper(begin + 1, end - 1, n, board, ret);
                board[n / 2] = '1';
                helper(begin + 1, end - 1, n, board, ret);
                board[n / 2] = '8';
                helper(begin + 1, end - 1, n, board, ret);
            }
            else {
                for (int i = 0; i < 10; i++) {
                    if ((begin == 0 && i == 0) || map[i] == -1) {
                        continue;
                    }
                    else {
                        board[begin] = (char) (i + '0');
                        board[end] = (char) (map[i] + '0');
                        helper(begin + 1, end - 1, n, board, ret);
                    }
                }
            }
        }
        
        public static void main(String[] args) {
            Solution test = new Solution();
            List<String> ret = test.findStrobogrammatic(3);
            System.out.println(ret.toString());
        }
    }
    

    自己写了出来。
    采用的 backtracking 的思想。
    答案和这个差不多。

    Anyway, Good luck, Richardo! -- 09/22/2016

    相关文章

      网友评论

        本文标题:Leetcode - Strobogrammatic Numbe

        本文链接:https://www.haomeiwen.com/subject/dtftyttx.html