今天第一次做topcoder,没有比赛,所以找的最新一期的SRM练习,做了第一道题。
题目大意是说 给一个数字字符串,任意交换两位,使数字变为最小,不能有前导0。
看到题目以后,先想到的找规律,发现要从后向前找数字串中最小的数,放在数字串中尽可能靠前的位置,数字最小。用这个贪心、找规律的方法,写代码,然后提交测试。 但最后,写出的代码不能过几组数据,感觉边界的数据非常容易考虑不周而出错,比如第一个数字是否为最小,数字串中是否有零等。
看了其他人的代码(http://www.cnblogs.com/xiongqiangcs/p/3143564.html),如果使用暴力解法,遍历解空间中的所有解,那么就能比较直接地、不用考虑边界地得到正确解。看来,在数据量允许的情况下,用暴力枚举和模拟,也是一个很好的解决问题的办法。