我的思路是用贪心,进制转换后得到两个字符串s1,s2,用一个ans字符串记录答案。 显然s2>s1,然后找出第一个s1[i]!=s2[i]的位置(在此之前的所有s1[i]==s2[i]都直接加到ans的末尾)。如果是最后一位就不变,否则让s1[i]=s2[i],然后后面的所有位数全部变成k-1.这种情况得到的数字最后再和上界比较一下k-1的个数,数字大的就是答案。还有楼主你的解法没有输出答案要求的最小的符合要求的数,而且你给的样例,最小的符合要求的数是99而不是199,不过你的思路应该有可取性,可以避免我这种贪心一堆边界判断的情况。
点赞 1
牛客网
牛客企业服务