Sort by

recency

|

590 Discussions

|

  • + 0 comments

    I am confused about why this is not working. If anyone can help I'll apreceate.

    import math
    import os
    import random
    import re
    import sys
    
    if __name__ == '__main__':
        first_multiple_input = input().rstrip().split()
    
        n = int(first_multiple_input[0])
    
        m = int(first_multiple_input[1])
    
        matrix = []
    
        for _ in range(n):
            matrix_item = input()
            matrix.append(matrix_item)
    
        text = ''
        for j in range(m):
            for i in range(n):
                if j < len(matrix[i]):
                    text += matrix[i][j]
                else:
                    text += ' '
        result = ''
        i = 0
        while i < len(text):
            if text[i].isalnum():
                result += text[i]
                i += 1
            elif text[i].isspace():
                result += text[i]
                i += 1
            else:
                next_alnum = i + 1
                while next_alnum < len(text) and not text[next_alnum].isalnum():
                    next_alnum += 1
                
                if (i > 0 and text[i-1].isalnum() and 
                    next_alnum < len(text) and text[next_alnum].isalnum()):
                    result += ' '
                    i = next_alnum
                else:
                    result += text[i]
                    i += 1
        if result.strip() and result.strip()[0] == '#':
            result = result.rstrip() + ' @'
        
        print(result)
    
  • + 0 comments

    Here is a really simple but hopefully readable solution:

    #!/bin/python3
    
    import re
    n, m = map(int, input().split())        
    matrix = [ input() for _ in range(n) ] 
    
    # a very Pythonic way to transpose and flatten a list of iterables - barely readable but you know what it's doing
    transpose = ''.join([c for ls in zip(*matrix) for c in ls])
    
    # Lookaheads and Lookbehinds let us use a simple 'sub' to replace every sandwiched cluster of symbols.
    print(re.sub(r"(?<=\w)[!@#$%& ]+(?=\w)", " ", transpose))
    
  • + 0 comments

    !/bin/python3

    import math import os import random import re import sys

    first_multiple_input = input().rstrip().split()

    n = int(first_multiple_input[0])

    m = int(first_multiple_input[1])

    matrix = []

    for _ in range(n): matrix_item = input() matrix.append(matrix_item)

    text = "" for col in range(len(matrix[0])): for row in matrix: text += row[col]

    result = re.sub(r'(?<=\w)[\W]+(?=\w)', ' ', text)

    print(result)

    result = re.sub(r'(?<=\w)[\W]+(?=\w)', ' ', text)

    print(result)

  • + 0 comments
    import math
    import os
    import random
    import re
    import sys
    
    first_multiple_input = input().rstrip().split()
    
    n = int(first_multiple_input[0])
    
    m = int(first_multiple_input[1])
    
    matrix = []
    
    for _ in range(n):
        matrix_item = input()
        matrix.append(matrix_item)
    
    B = [matrix[a][i] for i in range(m) for a in range(n)]       
    B = "".join(B)
    
    pat = r'(?<=[a-zA-Z])[^a-zA-Z]{1,}(?=[a-zA-Z])'
    C = re.sub(pat,' ',B)
    print(C)
    
  • + 0 comments
    #!/bin/python3
    
    import re
    
    first_multiple_input = input().rstrip().split()
    
    N = int(first_multiple_input[0])
    
    M = int(first_multiple_input[1])
    
    matrix = []
    
    for _ in range(N):
        matrix_item = input()
        matrix.append(matrix_item)
    
    decoded = ""
    
    for m in range(M):
        for n in range(N):
            decoded +=matrix[n][m]
    
    clean = re.sub(r'(?<=[A-Za-z0-9])[^A-Za-z0-9]+(?=[A-Za-z0-9])', ' ', decoded)
    
    print(clean)