public class Solution {
    public string OriginalDigits(string s) {
        int[] count = new int[10];
            for (int i = 0; i < s.Length; i++)
            {
                char c = s[i];
                if (c == 'z') count[0]++;
                if (c == 'w') count[2]++;
                if (c == 'x') count[6]++;
                if (c == 's') count[7]++; //7-6
                if (c == 'g') count[8]++;
                if (c == 'u') count[4]++;
                if (c == 'f') count[5]++; //5-4
                if (c == 'h') count[3]++; //3-8
                if (c == 'i') count[9]++; //9-8-5-6
                if (c == 'o') count[1]++; //1-0-2-4
            }
            count[7] -= count[6];
            count[5] -= count[4];
            count[3] -= count[8];
            count[9] = count[9] - count[8] - count[5] - count[6];
            count[1] = count[1] - count[0] - count[2] - count[4];
            StringBuilder sb = new StringBuilder();
            for (int i = 0; i <= 9; i++)
            {
                for (int j = 0; j < count[i]; j++)
                {
                    sb.Append(i);
                }
            }
            return sb.ToString();
    }
}

https://leetcode.com/problems/reconstruct-original-digits-from-english/#/description

posted on 2017-06-09 08:41  Sempron2800+  阅读(135)  评论(0编辑  收藏  举报