首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

分割排序-HDU 1106

Problem Description

输入一行数字,如果我们把这行数字中的‘5’都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数以‘0’开头,这些头部的‘0’应该被忽略掉,除非这个整数就是由若干个‘0’组成的,这时这个整数就是0)。

你的任务是:对这些分割得到的整数,依从小到大的顺序排序输出。

Input

输入包含多组测试用例,每组输入数据只有一行数字(数字之间没有空格),这行数字的长度不大于1000。

Output

对于每个测试用例,输出分割得到的整数排序的结果,相邻的两个整数之间用一个空格分开,每组输出占一行。

Sample Input

Sample Output

解题思路:

给定一串字符串数字,例如 513550067,从第一个数循环,然后判断是不是5,如果是,跳到下一个数字3,这时候就把3的下标记为一个假左,然后从3往之后找5(为了防止最后类似0067 找不到5的情况,我把字符串末尾手动加了个字符5)。

找到5 后,下标记为右,然后再把左右下标之间的字符串拿出来判断。

if 它全是由0组成

then 把0存入一个整型数组

else 更新左坐标

从左坐标判断,如果是0,左坐标+1,再判断左坐标,直到这个字符不是0(例如 最后取出的字符串 0067 的左下标对应的是0,右是7,更新左坐标后,左坐标对应的就变成了6,右不变),然后把67字符转换为10进制67存入数组。

最后将数组排序,输出。

源代码:

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180304G15C1B00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券