this post was submitted on 23 Dec 2024
11 points (100.0% liked)
Rust
6130 readers
62 users here now
Welcome to the Rust community! This is a place to discuss about the Rust programming language.
Wormhole
Credits
- The icon is a modified version of the official rust logo (changing the colors to a gradient and black background)
founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
There is a much nicer way of checking.
Rust iterators are really powerful. Try using them instead of loops, whenever you can.
Tap for solution
As you can see, the intent is much clearer instead of indexing into the loops. Technically this does however twice as many comparisons. They can be avoided with take and half the size of the iterator.
wow, this is really awesome. you just made a single liner for this whole problem. I didn't know that you could do something like this since I don't know much about Rust yet.
There's so many useful methods for iterators its worth reading the doc page to familiarize yourself. Its wicked powerful: https://doc.rust-lang.org/std/iter/trait.Iterator.html
You only need to check half of the string, so I think a technically optimal solution would have some take_while and maybe char_indices in there...
That's exactly what I Hinted at in my post, though I would use take(input.size()/2). However I wouldn't be surprised if the compiler could short circuit it, but I haven't checked.
Oh yeah I can't read 😄
I would be extremely surprised if any compiler was smart enough to short circuit that.
I would be a little less surprised if checking the whole string was actually faster anyway though... but I would still bet against it.