携程内推小仙女:关于空格的处理(输入的字符任何位置都可能有n个空格。前面、最后的空格直接去掉,中间的空格处理为1个)
思路:可以输入一个string字符串,先去除首尾空格,定义两个变量,分别从头尾进行遍历,找出第一个和最后一个字符的位置;然后寻找中间的空格,从前往后遍历,遇到字符保留,遇到空格删除,多余的空格只保留一个空格。最后输出遍历的结果。

0 点赞 评论 收藏
分享
minnnng:对于任务x(a, b)如果a > b,按a的大小排 对于任务y(a, b)如果a <= b,按b的大小排 这两个规则应该没争议吧。 现在考虑任务x(a, b), y(c, d),不妨设a > b, c <= d,总的延迟值记为S 则如果x排在y前面有 S0 = a - b + max(0, a+c - d) y排在x前面 S1 = 0 + (a+c - b) 1、假设a+c > d, 则S0 = a - b + a + c - d = a + c - b + a - d, S0 <= S1 ===> a - d <= 0 ====> a <= d 2、假设a+c <= d ===> a <= d,则S0 = a-b,显然S0 <= S1 也就是说对于两个任务x(a,b), y(c,d),一个满足a>b, 另一个满足c<=d,如果要使得延迟值最小, 则当a <= d时,x排在y前面 否则,y排在x前面。

0 点赞 评论 收藏
分享

0 点赞 评论 收藏
分享
Szhazha:我也是这个题目,写了排列,一直在那基础上改,没改出来。后来跟同学讨论,可以认为每个数都有出现和不出现两种可能,所以从第一位递归处理就好了,代码也很简单

0 点赞 评论 收藏
分享
创作者周榜
更多
关注他的用户也关注了: