Communities

tag:snake search within a tag
user:xxxx search by author id
score:0.5 posts with 0.5+ score
"snake oil" exact phrase
created:<1w created < 1 week ago
post_type:xxxx type of post
Challenges

Parent

Word Set Square

+7
−0

Challenge

Given a string, e.g. Hello, do the following:

Mirror it:

Hello -> HelloolleH

and create a right triangle using it as the sides:

H
ee
l l
l  l
o   o
o    o
l     l
l      l
e       e
HelloolleH

Which looks sort of like a set square.

That's it!

Scoring

This is code-golf. Shortest answer in each language wins.

Why does this post require moderator attention?
Why should this post be closed?

Post
+1
−0

Python 3, 196195145102918987 79 bytes

x=input();x+=x[::-1];i=-1
for c in x[:-1]:print(c*(i>-1)+" "*i+c);i+=1
print(x)

Try it online!

Golfed 50 bytes thanks to @celtschk's advice. Golfed another 43 bytes thanks to @celtschk's advice. Golfed another 11 bytes thanks to @celtschk's advice. Golfed another 2 bytes thanks to @celtschk's advice. Golfed 2 bytes thanks to @Moshi's advice. Golfed another 8 bytes thanks to @Moshi's advice.

Why does this post require moderator attention?

Sub 80 (1 comment)
bool(i) -> (i>0) (1 comment)
Further golfing opportunity
celtschk‭ wrote about 2 years ago

I've now noticed that you can dramatically shorten the code again by using Python's slicing syntax. Just replace the complete first loop with x+=x[-2::-1] and then remove the now unused variable j. This brings the byte count down to 103.

Try it online!

celtschk‭ wrote about 2 years ago

And another golfing opportunity: the if i: can be replaced by multiplying x[i] with bool(i), and then the whole line can be combined into a single string, getting rid also of the end=. This brings down the byte count to 92.

Try it online!

General Sebast1an‭ wrote about 2 years ago

celtschk‭ In your TIO links, you always placed a newline after the semicolon. I don't want you to keep on doing that if it will make me edit over and over, okay? :)

celtschk‭ wrote about 2 years ago

General Sebast1an‭ Actually it was the semicolon that I forgot to delete when I deleted the statement after it.

celtschk‭ wrote about 2 years ago

BTW, I just found you can reduce by two further bytes by using enumerate in the loop. While the enumerate expression itself is a bit longer, that is more than made up by replacing x[i] with c in the loop. And no semicolon this time ;-)

Try it online!