I really don't understand why people care so much what the beggar uses the money for. Give him a dollar, or don't. If you do, don't worry that he might use it to buy booze; just feel good that you did something nice for someone. If you don't, don't try to justify it to yourself by saying he might be a liar. Just say "I have the right to not give beggars money because it's my money" and be done with it.
There, I solved all of your altruism problems. You're welcome.
There, I solved all of your altruism problems. You're welcome.