
I would like to share 500 Data Structure and Algorithms problems - kevin996
You can find around 500+ data structure and algorithms problems here (http:&#x2F;&#x2F;www.techiedelight.com&#x2F;list-of-problems&#x2F;) that are helpful to improve your algorithmic skills and also to crack coding interview of top tech companies.<p>From: Discussion on reddit
https:&#x2F;&#x2F;www.reddit.com&#x2F;r&#x2F;learnprogramming&#x2F;comments&#x2F;86seey&#x2F;i_would_like_to_share_500_data_structure_and&#x2F;
======
bigdido
The best such site IMO:
[http://rosettacode.org/wiki/Category:Programming_Tasks](http://rosettacode.org/wiki/Category:Programming_Tasks)

~~~
slipwalker
i second that !

------
eesmith
In [http://www.techiedelight.com/count-set-bits-using-lookup-
tab...](http://www.techiedelight.com/count-set-bits-using-lookup-table/) , the
solution does not appear to be portable, that is, it uses the right shift of a
signed number, and the C specification says (from [http://www.open-
std.org/jtc1/sc22/wg14/www/docs/n1336.pdf](http://www.open-
std.org/jtc1/sc22/wg14/www/docs/n1336.pdf) )

> The result of E1 >> E2 is E1 right-shifted E2 bit positions. ... If E1 has a
> signed type and a negative value, the resulting value is implementation-
> defined.

In practice it isn't a concern, as the most common compilers (gcc, clang,
MSVC++) do what we expect.

~~~
tlb
Yes, it's only potentially different on CPUs with non-twos-complement
arithmetic, which nobody has made in a long time. I think the last was the
PDP-6 in 1963.

I'd prefer to have a C standard that specified everything you can count on in
a modern implementation.

------
gus_massa
It was heavily discussed in
[https://news.ycombinator.com/item?id=14128145](https://news.ycombinator.com/item?id=14128145)
(397 points, 11 months ago, 105 comments) and in other few posts.

Have you added something interesting recently?

------
kevin996
[http://www.techiedelight.com/list-of-
problems/](http://www.techiedelight.com/list-of-problems/)

------
reedx8
Thank you for posting this.

------
swarnie_
Are challenge tasks like this a viable introduction to programming?

~~~
Sileni
It helps to drill in basic syntax and increase your speed of thinking in the
language. Also gives you an opportunity to practice debugging and optimization
on a low complexity system, so you have all the concepts in your head when
moving to a larger system.

It's really bad for things like project structure and tackling multiple
complex, related problems. Bigger picture ideas get lost because of the scope
of the problems.

Really depends on what you're trying to accomplish. Think of them as a set of
flashcards. I'd say it's one of the better ways to bridge the gap between
beginner programming books and actually building small, useful programs.

