Alphabet Rangoli

Sort by

recency

|

1408 Discussions

|

  • + 0 comments
        w = 4*n-3
        chars = []
        line = ""
        lines = []
    
        for i in range(n):
            chars.append(chr(96+(n-i)))
            line = "-".join(chars + chars[-2::-1])
            lines.append(line.center(w,"-"))
    
        print("\n".join(lines + lines[-2::-1]))
    

    chars[-2::-1] is the same as list(reversed(chars[:-1]))

  • + 0 comments
    def print_rangoli(size: int) -> None:
        width: int = 4 * size - 3
        ascii_start: int = ord("a") - 1 # 97 - 1
    
        pattern_list: list[str] = []
    
        for i in range(1, size + 1):
            half_part: list[str] = [chr(ascii_start + size - j) for j in range(i)]
            line: str = "-".join(half_part + half_part[-2::-1])
            pattern_list.append(line.center(width, "-"))
    
        print(*pattern_list, sep="\n")
        print(*pattern_list[-2::-1],sep="\n")
    
  • + 0 comments

    import string def print_rangoli(n): alphabet = string.ascii_lowercase lines = [] for i in range(n): left = [] for k in range (i + 1): left.append(alphabet[n-1-k]) row = left + left[:-1][::-1] line = "-".join(row).center(4*n-3, "-") lines.append(line)

    print("\n".join(lines + lines[-2::-1]))
    

    if name == 'main': n = int(input()) print_rangoli(n)

  • + 0 comments
    def print_rangoli(n):
        a = [''] * 27
        for i in range(1, len(a)):
            a[i] = chr(ord('a') + i - 1)
    
        for i in range(1, n + 1):
    
            s = ""
            t = 0
            tmp = 0
            while t < i:
                s += str(a[n - t])
                tmp = n - t
                t += 1
            while tmp < n:
                s += a[tmp + 1]
                tmp += 1
            s = list(s)
            s = '-'.join(s)
            s = s.center(4 * n - 3, '-')
            print(s)
    
        for i in range(n - 1, 0, -1):
            s = ""
            t = 0
            tmp = 0
            while t < i:
                s += str(a[n - t])
                tmp = n - t
                t += 1
            while tmp < n:
                s += a[tmp + 1]
                tmp += 1
            s = list(s)
            s = '-'.join(s)
            s = s.center(4 * n - 3, '-')
            print(s)
    
            
    if __name__ == '__main__':
        n = int(input())
        print_rangoli(n)
    
  • + 0 comments

    Used string cropping for this one

    def print_rangoli(size):
        letters = [x for x in range(1, size + 1)]
        string = [chr(ord('a') + n - 1) for n in letters]
    
        if (size == 1):
            print("".join(string))
            return
    
        string_reversed = "-".join(string)
        string = reversed(string)
        string = "-".join(string)
        
        size *= 2
        
        for x in range(1, size, 2):
            print(f"{string[:x]:->{size - 1}}-{string_reversed[(size - x + 1):]:-<{size - 3}}")
            
        
        for x in reversed(range(1, size - 1, 2)):
            print(f"{string[:x]:->{size - 1}}-{string_reversed[(size - x + 1):]:-<{size - 3}}")