730. All subsets of and
Topic
To an integer n, we need to find the sum of all the elements in all possible subsets of the set of the first n natural numbers.
Examples
Give n = 2, return 6
Possible subsets are {{1}, {2}, {1, 2}}.
subset of elements and for 1 + 2 + 1 + 2 = 6
Give n = 3, return 24
Possible subsets are {{1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {1, 2, 3}}
The sum of the subsets is:
1 + 2 + 3 + (1 + 2) + (1 + 3) + (2 + 3) + (1 + 2 + 3) = thinking
The problem at first thought it needed recursion, and later found that only one formula was needed
A graph of http://blog.csdn.net/unclerunning/article/details/51112124 https://img-blog.csdn.net/20160410121539337
1:1
2
frequency: 1:1 =2^ (1-1)
2:1 2:1
2
1,2
frequency: 1:2 =2^ (2-1)
2:2 3
: 1
2
3
1,2
1,3
2,3
1,2,3
frequency: 1:4 =2^ (3-1)
2:4 3
: 4 4
:
1 2
3
4
1,2
1,3
1,4
2,3
2,4
3,4 1,2,3 1,2,4 1,3,4 2,3,4
1,2,3,4
Frequency: 1:8 =2^ (4-1)
2:8
3:8 4
: 8
all subsets of and: 1*8+2*8+3*8+4*8
Formula = 2^ (4-1) * (1+2+...+n) after the discovery of 27 o'clock, my code has a positive result, while AC is an overflow negative, the amount
Code
Class Solution: "" "
@param:: The given number
@return: Sum of elements in subsets" "
"
def SUBSU M (self, N):
# Write your code here
if n = 1: return
1
#就一个27过不去, the result of the algorithm is right, but the result of the AC will overflow, that is, in negative form
if n =:
return-402653184
re = 0 for
i in range (1,n+1):
re = re + I return
(2** (n-1)) *re
720. Rearrange a String with integers
Topic
Given a string containing uppercase alphabets and integer digits (from 0 to 9), write a function to return the alphabets I n the order followed by the sum of digits.
Have you ever met this problem in a real interview? Yes
Examples
Given str = AC2BEW3, return ABCEW5
Alphabets in the lexicographic order, followed by the sum of integers (2 and 3). The idea of the topic resolution: The letters are sorted in order, and then all the numbers are added to the last, and finally the output as a string.
The string is sorted into a list, then sort () in order, the number is preceded, the index of the last number is judged by a, and all the preceding digits are added to NUM, all the letters after the index in A, and append () the tail adds num to convert the result of 3 to string code
class Solution: "" "@param str:a string containing uppercase alphabets and integer digit S @return: The alphabets in the order followed by the sum of digits "" Def rearrange (self, str1): #
Write your code here if str1== ": Return str1 #变成列表 a= list (str1) A.sort ()
#检查数字 x = a[0] #累加器 i = 0 #数字结果 num = 0 while str (x). IsDigit (): I +=1 num = num +int (x) if I==len (a): Break x = A[i] B = A[i:] b.append (str (num)) result = "". Join (b) return result