Do what my maternal grandfather used to do when drunks asked him for money for food or coffee. Offer to buy them a meal or coffee. He knew the ones who refused him simply wanted more money for booze.
Years ago, we had a guy on the next block who was a drug addict. He used to ask my mother for money from time to time. She usually refused, knowing what he would do with it. This person really squandered away his life. He inherited the house he was in free and clear, along with about $300K from his grandmother. This was in the 1980s. He was around my age. He easily could have been set for life, never needing to work another day, in his 20s. I thought what a great thing they would have been if I had been in his shoes, being free from the burden of having to earn money to survive. He spent every penny on drugs. He and his friends trashed the house, doubtless severely impacting the money he got when it was sold.
I don't know what became of him, but he's probably dead by now. One of my brother's friends, who also had a bad drug problem, died at 47. Most people who knew him were surprised he lived that long.
It's nice to think letting people fail is the right choice which helps them, but more often than not they just fail. There's no helping them up. I don't know what the right answer is. Honestly, even though I feel sorry for addicts and drunks, sometimes I think the best course is to just give them lots more of what they crave. They're bent on self-destruction anyway, let them just get it over with as soon as possible, without robbing people to pay for their habit.