[LeetCode] Strobogrammatic Number III

來源:互聯網
上載者:User

標籤:

The idea is similar to Strobogrammatic Number II: generate all those in-range strobogrammatic numbers and count.

You may refer to this link for a very readable code, which I have rewritten in C++ below.

 1 class Solution { 2 public: 3     Solution() { 4         mp = {{‘0‘, ‘0‘}, {‘1‘, ‘1‘}, {‘6‘, ‘9‘}, {‘8‘, ‘8‘}, {‘9‘, ‘6‘}}; 5     } 6      7     int strobogrammaticInRange(string low, string high) { 8         int ans = 0, l = low.length(), u = high.length(); 9         for (int i = l; i <= u; i++) {10             string temp(i, ‘ ‘);11             strobogrammaticCount(temp, ans, low, high, 0, i - 1);12         }13         return ans;14     }15 private:16     unordered_map<char, char> mp;17     void strobogrammaticCount(string temp, int& ans, string& low, string& high, int lo, int hi) {18         if (lo > hi) {19             if ((temp[0] != ‘0‘ || temp.length() == 1) && less(low, temp) && less(temp, high))20                 ans++;21             return;22         }23         for (auto m : mp) {24             temp[lo] = m.first;25             temp[hi] = m.second;26             if ((lo == hi && m.first == m.second) || lo < hi)27                 strobogrammaticCount(temp, ans, low, high, lo + 1, hi - 1);28         }29     }30     bool less(string& s, string& t) {31         int m = s.length(), n = t.length(), i;32         if (m != n) return m < n;33         for (i = 0; i < m; i++)34             if (s[i] == t[i]) continue;35             else break;36         return i == m || s[i] < t[i];37     }38 };

 

[LeetCode] Strobogrammatic Number III

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.