September 19, 2022

Задачи Codewars

Задача 1
Разбить строку из букв попарно. Если нечетное количество букв, добвать underscore.

Варианты:
def solution(s):
    input_str = s
    if len(input_str)%2 == 1:
        input_str = input_str + '_'
    n = int(len(input_str))
    lst = []
    cnt = 0
    for i in range(n):
        if i==n/2:break
        block1 = input_str[cnt] + input_str[cnt+1]
        lst.append(block1)
        cnt += 2
    return print (lst)

solution('asdfadsf')

Варианты еще:

def solution(s):
    result = []
    if len(s) % 2:
        s += '_'
    for i in range(0, len(s), 2):
        result.append(s[i:i+2])
    return result
def solution(s):
    return [s[x:x+2] if x < len(s) - 1 else s[-1] + "_" for x in range(0, len(s), 2)]

Еще:

def solution(s):
    if len(s) % 2 == 1:    
        s += '_'
    
    return [s[i:i+2] for i in xrange(0,len(s),2)]
s = s+'_' if (len(s)%2 == 1) else s    
    return [s[i:i+2] for i in range(0, len(s), 2)]
def solution(s):
    if len(s) == 0:
        return []
    elif len(s) == 1:
        return [s + "_"]
    else:
        return [s[:2]] + solution(s[2:])
        

Перемножить массив чисел

def grow(arr):
    lst2 = '*'.join([str(i) for i in arr])
    return eval(lst2)

Найти меньшее число из списка

def find_smallest_int(arr):
    max_ = arr[0]
    for i in arr:
        if i < max_:
            max_ = i
    return max_ 

Вернуться в содержание