fork download
  1. from re import*
  2. r=len
  3. q='(?<=[^\s])\s+(?=[^\s])'
  4. T,S='~ '
  5. f=lambda x:'\n'.join(k[:-1]+[sub(S,T,w:=k[-1])]+[S*j[0]+T+S*(r(w)-j[0]+1)for _ in range(sum(r(findall(q,n)[0])for n in k[:-1])-w.count(S)+(w.count(S)==1))]if(j:=(lambda x:[i for i in range(r(x))if i and-~i<r(x)and findall('^(?:[^\s]|\s)\s+$',''.join(x[i]))*(Z:=lambda z:any(d!=S for d in x[i+z][1:]))(-1)*Z(1)])([*zip(*(k:=x.split('\n')))]))else(sub(q,lambda x:T*r(x.group()),l)for l in k))
  6.  
  7. print(f("""00 00
  8. 00 00
  9. 000 0 """))
  10. print(f("""^^^ ^
  11. ^^ ^
  12. ^^^ ^
  13. ^ ^ """))
  14. print(f("""@@@ @@@
  15. @ @ """))
  16. print(f("""# #
  17. # # #
  18. ### #"""))
  19. print(f("""xx xx
  20. x x
  21. x x
  22. xx """))
  23. print(f("""2 2
  24. 2 2"""))
  25. print(f("""# #
  26. # #
  27. #### """))
  28. print(f("""!!! !!
  29. !! !
  30. !!! !
  31. !!!! """))
  32. print(f("""4 4
  33. 4 4 4
  34. 44444"""))
  35. print(f(""" B B
  36. B B
  37. B B
  38. B B
  39. B B
  40. BBB """))
  41. print(f("""sss sss
  42. s s
  43. s s
  44. ssssssssss"""))
Success #stdin #stdout 0.13s 15496KB
stdin
Standard input is empty
stdout
00     00
 00   00 
~~000~0~~
     ~     
     ~     
     ~     
^^^        ^
   ^^      ^
     ^^^   ^
~~~~~~~~^~^~
         ~    
         ~    
         ~    
         ~    
         ~    
         ~    
         ~    
@@@ @@@
~~@~@~~
#   #
# # #
###~#
   ~   
   ~   
   ~   
   ~   
xx xx
x   x
x   x
~xx~~
   ~   
   ~   
   ~   
   ~   
2 2
2~2
 ~   
#~~~~~~#
 #~~~~# 
  ####  
!!!~~~~~~~~!!
   !!~~~~~~! 
     !!!~~~! 
        !!!! 
4~~~4
4~4~4
44444
  B~B  
 B~~~B 
B~~~~~B
B~~~~~B
 B~~~B 
  BBB  
sss~~sss
  s~~s  
   s~s  
ssssssssss