Instead of trying to decide who is worthy of your dollar, perhaps consider what that dollar is worth to you vs. what it is worth to them.
If you give them a dollar and it's spent on something you don't approve of or you think they are not deserving that on them. If you don't give them anything because you assume they might not be worthy, that's on you.
If good deeds (or even neutral deeds) are scrutinized and discouraged, there will be no end of other, theoretical good deeds that might have been done, and no simple good deed will be done.
How do you define scammer? If a person is homeless, but holds up a gas can with a sign that says "ran out of gas please help!" then they're lying about why they need the money, but they aren't scamming in terms of not actually being homeless.
What about junkies too-- they still need to eat. Absent enough money to do both, they might choose just to get high, deteriorate more, have even less chance of recovery.
There's no easy litmus test here. No easy way to ensure the money you give is going to be used in the best possible way to improve someone's life.
As for junkies - homeless junkies get hungry too.
So I reject your ad hominem attack. Your vein of typical sharp-tongued HN cynicism is very tedious.
Moreover, your remark has the arrogance of assuming all consequences of action are knowable. They are not, but you will need to learn that yourself.
Why even reply to the thread if you're going to be so stubborn on your position?
Even if they are going to spend it on drugs they wont tell you so you are forcing them to degrade themselves either way by lying or by proving they aren't going to spend it on drugs.
Just say no if you think they are going to blow it on drugs or say yes without pretending their drug habit is the result of you giving a buck on a particular corner.