38
Awesome Team
Stefan Pochmann
http://www.stefan-pochmann.info/
Last seen 4 hours ago
Member for 9 years, 1 month, 10 days
Difficulty Normal
Recent solutions I'm happy with (just starting/trying this):
[Words Order](https://py.checkio.org/mission/words-order/publications/StefanPochmann/python-3/short-dict-subsequence/share/5bbb2df54ec5a810d36d7f70ae7e92da/)
Dang it no markdown here?
Shortening it by removing code duplication (but I'm afraid it makes it a little less clear):
def create_intervals(data):
return list(zip(*(sorted(x for x in data if x+d not in data)
for d in (-1, 1))))
And golfed:
create_intervals=lambda X:list(zip(*(sort
More
Zip the interval starts with the interval ends. Similar to [my previous solution](https://py.checkio.org/mission/create-intervals/publications/StefanPochmann/python-3/simple-oneliner/), so I could've seen this myself, but really just a corrected and improved version of [Lemmi's solution](https://py.
More
Took me forever to find those index expressions. My progression was:
checkio=lambda n:'Fizz Buzz'[(n%3>0)*5:4+5*(n%5<1)]or`n`
checkio=lambda n:'Fizz Buzz'[n%-3&-4:4+5*(n%5<1)]or`n`
checkio=lambda n:'Fizz Buzz'[n%-3&-4:9-n%5-n*4%5]or`n`
checkio=lambda n:'Fizz Buzz'[n%-3&-4:12-(n%-5&8
More
Ah, I should've suspected you've done this already.
No need for `b` if you use `find` instead of `index`.
More
Still one character longer than [mine](https://py.checkio.org/mission/house-password/publications/StefanPochmann/python-3/shortest/?ordering=most_voted&filtering=all) :-P
But it's trivial to make yours shorter. Why don't you use a set comprehension?
More
For example `correct_sentence('I')` crashes ("I." is a perfectly fine sentence, and since a point of the mission is to correct a missing dot, `'I'` is a perfectly reasonable input).
Btw, how about `tail.strip(".") + "."`?
More
Alternatively, a little more efficient and maybe clearer:
def merge_intervals(intervals):
result = []
for interval in intervals:
if not result or interval[0] > result[-1][1] + 1:
result.append(interval)
else:
result[-1] = r
More
I finally [beat you](http://www.checkio.org/mission/fizz-buzz/publications/StefanPochmann/python-27/shortest-52-kill-me-now/)... omg that was hard work. Thanks for the motivation :-)
More
Disproof: From goal state, just swap blue with yellow. You can't solve it because you never turn rings 2 and 3.
More
Dictionary version :-)
```python
def calkin_wilf(n: int) -> tuple[int, int]:
result = {'1': 0, '0': 1}
for bit in f"{n:b}":
result[bit] = sum(result.values())
return tuple(result.values())
```
More
Just shortened the third line a bit (required changing the characters):
checkio=lambda i,r=range:int(bytes(48+min(r(10),
key=lambda n:bin(ord('歫⒚玧碧䧭㣏毎ኧ篯㧮'[n])
^sum(i[o//3][d+o%3]<More
How about...
def merged(intervals):
if intervals:
it = iter(intervals)
a, b = next(it)
...
More
Collecting None, sweet. Or is that just to confuse+educate? :-)
`0<=ij>=0` would have been nice as well. Or `n>i>-1More
Explanation: For each center cell c, go through all cells and count the bacteria at each Manhattan distance. Then use that to find the smallest non-full "ring" around it and if that ring is empty, we found the radius of the colony.
It's not efficient, but it is simple (and it doesn't have to be eff
More
The power is not enough to handle `create_intervals({0, 1234567890})`, crashes with a `MemoryError`. But still a nice idea. Second line can be simpler/shorter:
return [(x + 1, y - 1) for x, y in zip(ex, ex[1:]) if y - x > 1]
More