I used to work in a global charity that organised many overseas visits for child sponsors to visit their kids in developing countries, where there are many children begging on the streets. They'd knock on our car doors while we were stuck in traffic in Phnom Penh, and try to sell souvenirs, newspapers, water... Our stance has always been to ***not*** buy or give cash, because there are syndicates running these 'businesses' and they profit from these kids.
So to give them money is to encourage these syndicates to continue leeching off these children. An alternative would be to donate to a legit charity working in that region/ area, that can work to solve these economic and social issues long-term. Of course, that'd take time, but it's worth the investment.