67. Add Binary \ 168. Excel Sheet Column Title

来源:互联网 发布:js判断质数的算法 编辑:程序博客网 时间:2024/06/13 00:35

  • Add Binary
  • Excel Sheet Column Title

67. Add Binary

class Solution {public:    string addBinary(string a, string b) {        int a_len = a.length() - 1;        int b_len = b.length() - 1;        int max_ab = max(a_len, b_len);        int cf = 0;        string rel;        for(int i = 0; i <= max_ab; i++) {            int a_1 = i > a_len?0:a[a_len - i]-'0';            int b_1 = i > b_len?0:b[b_len - i]-'0';            char tmp = (a_1+b_1+cf)%2 + '0';            rel = tmp + rel;            cf = (a_1+b_1+cf)>>1;        }        if(cf)            rel = '1' + rel;        return rel;    }};

更加简洁的代码:

class Solution {public:    string addBinary(string a, string b)    {        string s = "";        int c = 0, i = a.size() - 1, j = b.size() - 1;        while(i >= 0 || j >= 0 || c == 1)        {            c += i >= 0 ? a[i --] - '0' : 0;            c += j >= 0 ? b[j --] - '0' : 0;            s = char((c & 1) + '0') + s;            c = c >> 1;        }        return s;    }};

168. Excel Sheet Column Title

class Solution {public:    string convertToTitle(int n) {        string rel;        while(n > 0) {            int n1 = n/26;            int n2 = n%26;            n = n1 - (n2==0);            rel = char(n2 + 'A' - 1 + 26*(n2 == 0)) + rel;         }        return rel;    }};

更好的代码:

class Solution {public:    string convertToTitle(int n) {        string rel;        while(n > 0) {            int n1 = (n-1)/26;            int n2 = (n-1)%26;            n = n1;            rel = char(n2 + 'A') + rel;         }        return rel;    }};
return n == 0 ? "" : convertToTitle(n / 26) + (char) (--n % 26 + 'A');
1 0
原创粉丝点击