Budapest - I would recommend the Marriott which is on the danube and has beatiful view from every room. it is located just by the shopping area too. The Hilton has the best location - inside the Castle area.
Prague - Last time I stayed at the Hilton which is a beatiful hotel but is a bit away from the center(10-15 minutes walk). The InterContinental is much closer.
Both cities are beautiful. take about 3-4 days in Prague and the same for Budapest