diff --git a/leet_1155.py b/leet_1155.py new file mode 100644 index 0000000..7cb5854 --- /dev/null +++ b/leet_1155.py @@ -0,0 +1,42 @@ +class Solution: + def toHex(self, num: int) -> str: + mp = {} + for i in range(10): + mp[i] = str(i) + for i in range(10, 16): + mp[i] = chr(ord('a')+i-10) + + if num==0: + return str(0) + + ans = "" + neg = 1 if num < 0 else 0 + + rev = {v:int(k) for k,v in mp.items()} + num = num*-1 if neg else num + while num: + dig = num%16 + ans += mp[dig] + num//=16 + ans = ans[::-1] + if neg: + mx = "ffffffff" + ans = ''.join(["0"]*(8-len(ans))) + ans + new_ans = "" + assert(len(ans) == len(mx)) + for i in range(8): + new_ans += mp[rev[mx[i]] - rev[ans[i]]] + i=7 + + print(new_ans, i) + f=0 + while(i>0 and new_ans[i] == "f"): + new_ans = new_ans[:i] + "0" + new_ans[i+1:] + i-=1 + f=1 + new_ans = new_ans[:i] + mp[rev[new_ans[i]] + 1] + new_ans[i+1:] + return new_ans + + else: + return ans + diff --git a/leet_1310.py b/leet_1310.py new file mode 100644 index 0000000..3f1d1fb --- /dev/null +++ b/leet_1310.py @@ -0,0 +1,10 @@ +class Solution: + def xorQueries(self, arr: List[int], queries: List[List[int]]) -> List[int]: + pref = [0] + for e in arr: + pref.append(e ^ pref[-1]) + ans = [] + for [l, r] in queries: + ans.append(pref[r+1] ^ pref[l]) + return ans + diff --git a/leet_1525.py b/leet_1525.py new file mode 100644 index 0000000..287d33d --- /dev/null +++ b/leet_1525.py @@ -0,0 +1,16 @@ +import collections +class Solution: + def numSplits(self, s: str) -> int: + lc, rc = collections.Counter(), collections.Counter(s) + + res = 0 + for c in s: + lc[c] += 1 + rc[c] -=1 + + if rc[c]==0: + del rc[c] + + if len(lc) == len(rc): + res +=1 + return res diff --git a/leet_338.cpp b/leet_338.cpp new file mode 100644 index 0000000..79f1704 --- /dev/null +++ b/leet_338.cpp @@ -0,0 +1,28 @@ +class Solution { +public: + vector countBits(int num) { + vector ans = {0, 1}; + int n=2; + int tot = 2; + int j=0; + if(num==0){ + vector ans = {0}; + return ans; + } + if(num==1){ + vector ans = {0, 1}; + return ans; + } + + while(tot != num+1){ + ans.push_back(ans[j]+1); + j+=1; + if(j==n){ + j=0; + n*=2; + } + tot+=1; + } + return ans; + } +};