hdu1106 java字符串分割

hdu1106 java字符串分割排序TimeLimit:2000/1000MS(Java/Others)    MemoryLimit:65536/32768K(Java/Others)TotalSubmission(s):30220    AcceptedSubmission(s):8391ProblemDescription输入一行数字,如果我们把这行数字中的‘5’都

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
   

排序

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 30220    Accepted Submission(s): 8391

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

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

 

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

输入数据保证:分割得到的非负整数不会大于100000000;输入数据不可能全由‘5’组成。

 

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

 

Sample Input
  
  
  
0051231232050775
 

Sample Output
  
  
  
0 77 12312320
 

用java解的话,可以直接用String的split方法去分割。但是要注意两点:

第一:开头如果有5 的话,分割出的字符串会含有空串;

第二:中间如果有多个连续的5的话,匹配用的正则式要使用5+,即匹配一次或多次,而5*是匹配0次或多次

           总体来说,正则表达式还是不熟啊。WA了大半个下午。才找到错误。

import java.util.Arrays;
import java.util.Scanner;

public class Main {
	public static void main(String []args)throws Exception{
		Scanner cin = new Scanner(System.in);
		while(cin.hasNext()){
			String values = cin.next();
			while(true){
				if(values.startsWith("5"))
					values=values.substring(1);
				else
					break;
			}
			String s[] = values.split("5+");
			int a[]=new int[s.length];
			for(int i=0;i<s.length;i++){
				a[i]=Integer.parseInt(s[i]);
			}
			Arrays.sort(a);
			for(int i=0;i<a.length;i++)
			{
				System.out.print(a[i]);
				if(i!=a.length-1)
					System.out.print(" ");
				else
					System.out.println();
			}
				
		}	
		cin.close();
	}
}

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/188604.html原文链接:https://javaforall.net

(0)
上一篇 2026年4月16日 上午8:43
下一篇 2026年4月16日 上午8:49


相关推荐

  • Python中时间与时间戳之间的转换

    对于时间数据,如2016-05-0520:28:54,有时需要与时间戳进行相互的运算,此时就需要对两种形式进行转换,在Python中,转换时需要用到time模块,具体的操作有如下的几种:将时间转换为时间戳重新格式化时间时间戳转换为时间获取当前时间及将其转换成时间戳1、将时间转换成时间戳将如上的时间2016-05-0520:28:54转换成时间戳,具体的操作过程为:利用strptime

    2022年4月11日
    46
  • python如何导入项目,PyCharm如何导入python项目

    python如何导入项目,PyCharm如何导入python项目Pycharm 导入 python 项目进入 PyCharm 后 点击 File Open 然后在弹窗中选择需要导入项目的文件夹 打开了 python 项目后 需要配置该项目对应的 python 才可以正常运行 配置步骤 File settings 在设置弹窗中选择 ProjectInter 然后点击 add 在弹窗中 选择 Existingenvi 路径选择 python 项目的路径 venv S

    2026年3月27日
    2
  • Hunyuan-MT Pro保姆级教程:从部署到多语言翻译全流程

    Hunyuan-MT Pro保姆级教程:从部署到多语言翻译全流程

    2026年3月13日
    2
  • python迭代器好处_python迭代器

    python迭代器好处_python迭代器知识内容 1 可迭代对象和迭代器 2 判断迭代器和可迭代对象的方法 3 迭代器的优缺点一 可迭代对象和迭代器 1 可迭代对象 gt Iterable 1 可迭代协议可以被迭代要满足要求的就叫做可迭代协议 内部实现了 iter 方法 iterable 是可迭代对应的标志 2 什么叫迭代一个一个取值 就像 for 循环一样取值 这样的就叫迭代字符串 列表 元组 集合 字典都是可迭代对象 但不是迭代器对象

    2026年3月19日
    2
  • JDBC_3 数据库事物

    JDBC_3 数据库事物数据库事务数据一旦提交,就不可回滚那些操作会导致数据的自动提交?DDL操作一旦执行,都会自动提交-. set autocommit = false不起作用DML默认情况下,一旦执行就会自动提交-. 可以设置set autocommit = false关闭连接的时候会自动提交 Connection connection = DriverManager.getConnection(url, user, password); connection.setAutoCommit

    2022年8月8日
    10
  • 虚拟机联网的三种方式(虚拟机 macos)

    虚拟机联网与本机共享网络window任务栏网络图标右键打开“网络和internet”设置下拉点击网络和共享中心????点击蓝色的WLAN(xxx)????点击属性(P)、共享????如图勾选启动虚拟机,点击菜单栏中的虚拟机????设置????网络适配器勾选仅主机模式:与主机共享的专业网络如下????最后启动MacOS,打开设置中的网络,我们可以看到以太网前面呈现绿色点,表明设置成功。ps:更改设置前已启动…

    2022年4月12日
    237

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号