前几天,在LintCode上遇到一题难度为简单的算法题。但是,数次通过不了。查看题解,发现是自己将题目理解错了。
因此有感:题目理解错误,是题目说明不足?还是自己想多了?
1214·许可证密钥格式
问题描述
给定一个用字符串S表示的许可证,其中仅仅包含了数字、字母和短横线。字符串被N个短横线“-”切分为了N+1组。
给定一个数字K,要求重新整理字符串的格式,使得除了第一组之外的每个组正好K个字符,第一组长度可以比K小,但也至少要包含一个字符。此外,对于两个组之间必须要插入一个短横线,所有的小写字母都要转换为大写字母。
初看问题,因为题目只说了“第一组长度可以比K小”,我的想法是:第一组长度既可以比K小,也可以比K大,所以第一组字符串不动,后面按每组K个字符分组。
对于这个想法,当时自己也发现了问题,即:如果第一组以后的字符数不足nK,如何解决?
但是,一来想着可能测试用字符串的字符数是算好的,既然没有说明就不用答题者关心,二来第一想法“第一组字符串不动”在脑子里占了优势,结果没有能重新思考题目的意思。
或许,对于这题,想错的人只有我?
浙公网安备 33010602011771号