classSolution: defsumOfTheDigitsOfHarshadNumber(self, x: int) -> int: s = sum(ord(c) - ord('0') for c instr(x)) return s if x % s == 0else -1
1 2 3 4 5 6 7 8 9 10 11
implSolution { pubfnsum_of_the_digits_of_harshad_number(x: i32) ->i32 { letmut sum = 0; letmut a = x; while a > 0 { sum += a % 10; a /= 10; } if x % sum == 0 {sum} else {-1} } }
implSolution { pubfnmax_bottles_drunk(num_bottles: i32, num_exchange: i32) ->i32 { letmut num_exchange = num_exchange; letmut res = num_bottles; letmut tot = num_bottles; while tot >= num_exchange { res += 1; tot -= num_exchange - 1; num_exchange += 1; } res } }
1 2 3 4 5 6 7 8 9
classSolution: defmaxBottlesDrunk(self, numBottles: int, numExchange: int) -> int: res, tot = numBottles, numBottles while tot >= numExchange: res += 1 tot -= numExchange - 1 numExchange += 1 return res
classSolution: defcountAlternatingSubarrays(self, nums: List[int]) -> int: n = len(nums) tot, res = 1, 1 for i inrange(1, len(nums)): tot = 1if nums[i] == nums[i - 1] else tot + 1 res += tot return res
1 2 3 4 5 6 7 8 9 10 11 12
implSolution { pubfncount_alternating_subarrays(nums: Vec<i32>) ->i64 { letmut tot = 1; letmut res = 1asi64; foriin1..nums.len() { tot = if nums[i] == nums[i - 1] {1} else {tot + 1}; res += tot asi64; }
classSolution: defminimumDistance(self, points: List[List[int]]) -> int: n = len(points) add, sub = [], [] for i, (x, y) inenumerate(points): add.append([x + y, i]) sub.append([x - y, i]) add.sort() sub.sort()
x = add[-1][0] - add[0][0] y = sub[-1][0] - sub[0][0] res = inf i, j = 0, 0 if x >= y: i, j = add[0][1], add[-1][1] else: i, j = sub[0][1], sub[-1][1]
letx = add.last().unwrap()[0] - add.first().unwrap()[0]; lety = sub.last().unwrap()[0] - sub.first().unwrap()[0]; letmut res = i32::MAX; let (mut i, mut j) = (0, 0);
if x >= y { i = add.first().unwrap()[1] asusize; j = add.last().unwrap()[1] asusize; } else { i = sub.first().unwrap()[1] asusize; j = sub.last().unwrap()[1] asusize; }