Openjudge 1.13-40 提取数字串按数值排序
40:提取数字串按数值排序
- 总时间限制:
- 1000ms
- 内存限制:
- 65536kB
- 描述
-
给定一个字符串,请将其中的所有数字串提取,并将每个数字串作为整数看待(假设可以用int 表示),按从小到大顺序输出结果,输出的整数之间以逗号间隔。如果没有数字,则输出0;例如:*1234.345#6781ad9jk81-11101?aght88ir09kp,其中的整数包括:1234,345,6781,9,81,11101,88,9,从小到大排序后,应该输出:
9,9,81,88,345,1234,6781,11101 - 输入
- 在一行内输入一串符号,长度不大于300。输入数据保证提取的整数不超过109。
- 输出
- 从小到大排序的整数序列,如果没有数字,则输出0;
- 样例输入
-
*1234.345#6781ad9jk81-11101?aght88ir09kp
- 样例输出
-
9,9,81,88,345,1234,6781,11101
- 来源
- 元培-From Whf
- 注意姿势的模拟。可以练练点能力。。
- 我做的也不容易。。
-
一共WA了4遍 CE了1遍才A下面是代码
#include <algorithm>
#include <iostream>
#include <cstring>
#include <string>
#include <cstdio> using namespace std; struct node{
string a;
}e[];
int tot,i,s;
string str;
bool f;
bool cmp(node x,node y)
{
if(x.a.length()==y.a.length()){
if(x.a.length()!=)
{
int d=;
while(x.a[d]==y.a[d]){
++d;
}
return x.a[d]<y.a[d];
}
else return x.a[]<y.a[];
}
else return x.a.length()<y.a.length();
}
int main()
{
cin >> str;
int st=;
for (i = max (s,) ; i < str.length();++i)
{
if((str[i]>=''&&str[i]<='')&&!f)
{
st=i;
f=;
}
if(f&&(!(str[i]>=''&&str[i]<=''))) {
++tot;
while(str[st]==''&&i-st>){
st++;
}
if(st!=i)
{
for(int j=st;j<i;++j)
e[tot].a+=str[j];
}
else e[tot].a="";
f=;
st=;
}
}
if(f)
{
++tot;
while(str[st]==''&&i-st>){
st++;
}
if(st!=str.length())
for(int j=st;j<str.length();++j)
e[tot].a+=str[j];
else e[tot].a="";
}
/* if(st&&ov)
{
++tot;
for(int j=st;j<=ov;++j)
e[tot].a+=str[j];
}
*/ if(!tot)
{
cout<<"";
}
else{
sort(e+,e+tot+,cmp);
for(i=;i<tot;++i)
cout<<e[i].a<<",";
cout<<e[tot].a;
}
return ;
}点击展开
Openjudge 1.13-40 提取数字串按数值排序的更多相关文章
- Java 正则提取数字串
例如:有一个字符串:"数量最低2000份",将其中的2000数字提取出来. String arg0 = "数量最低2000份"; Pattern p = Pat ...
- Oracle中如何判断字符串是否全为数字,以及从任意字符串中提取数字
本文介绍了判断字符串是否全为数字的4种办法,另外还介绍了一个translate函数的小技巧,从任意字符串中提取数字(调用2次translate函数).这个办法是一个公司同事发现的,用起来很方便,但理解 ...
- java从字符串中提取数字的简单实例
随便给你一个含有数字的字符串,比如: String s="eert343dfg56756dtry66fggg89dfgf"; 那我们如何把其中的数字提取出来呢?大致有以下几种方法, ...
- 【总结】java regex 正则表达式 提取数字和去除数字,过滤数字,提取价格
@Test public void test33() { String phoneString = "哈哈,13888889999"; // 提取数字 Pattern patter ...
- 解决 PHPExcel 长数字串显示为科学计数
解决 PHPExcel 长数字串显示为科学计数 在excel中如果在一个默认的格中输入或复制超长数字字符串,它会显示为科学计算法,例如身份证号码,解决方法是把表格设置文本格式或在输入前加一个单引号. ...
- sql 提取数字、字母、汉字
--提取数字 IF OBJECT_ID('DBO.GET_NUMBER2') IS NOT NULL DROP FUNCTION DBO.GET_NUMBER2 GO )) ) AS BEGIN BE ...
- IT公司100题-25-求字符串中的最长数字串
问题描述: 实现一个函数,求出字符串中的连续最长数字串.例如输入”12345cbf3456″,输出”12345″. 函数原型为: void conti_num_max( const char * sr ...
- TYVJ P1063 数字串 Label:双指针 线性扫描
描述 给你一个长度为n的数字串,数字串里会包含1-m这些数字.如果连续的一段数字子串包含了1-m这些数字,则称这个数字字串为NUM串.你的任务是求出长度最短的NUM串是什么,只需要输出这个长度即可.1 ...
- parseInt在IE8转换返回不相等(parseInt("08")返回0等以0开头大于7的数字串)
描述 在IE8内核下parseInt("08")返回0,等以0开头大于7的数字串返回的值不相等 解决方法 parseInt当不指定radix时,当以0x开头时,s按照十六进制计算的 ...
随机推荐
- IOS开发之小实例--创建一个简单的用于视频录制和回放的应用程序
前言:还是看了一下国外的入门IOS文章:<Create a Simple App for Video Recording and Playback>,主要涉及视频录制和回放的功能的基本实现 ...
- mysql常用函数汇总
一.数学函数ABS(x) 返回x的绝对值BIN(x) 返回x的二进制(OCT返回八进制,HEX返回十六进制)CEILING(x) 返回大于x的最小整数值EXP(x) 返回值e(自然对数 ...
- CSS之旅——第一站 为什么要用CSS
不知道有多少码农和我一样,css一直是一个软肋,软到全身酥麻...既然软肋来了,只能是要想办法解决,所以就找本CSS权威指南看一看,都说 CSS权威指南这本书比较过时,但是内容还是比较充实的,而且内容 ...
- plsql 查询结果窗口 不正常
今天发现了一个很有趣的现象,一个查询语句查出来的结果窗口只显示一部分. 是因为查询语句中有全角的字符或者空格: 如果是sqlServer的话直接就报错了,而plsql不报错,显示如下
- 常用的主机监控Shell脚本
最近时不时有朋友问我关于服务器监控方面的问题,问常用的服务器监控除了用开源软件,比如:cacti,nagios监控外是否可以自己写shell脚本呢?根据自己的需求写出的shell脚本更能满足需求,更能 ...
- 初学Mahout测试kmeans算法
预备工作: 启动hadoop集群 准备数据 Synthetic_control.data数据集下载地址http://archive.ics.uci.edu/ml/databases/synthetic ...
- js 求时间差
var date1=new Date(); //开始时间 var date2=new Date(); //结束时间 var date3=date2.getTime()-date1.getTim ...
- Mac上打开拷贝到移动硬盘里的文件提示“已经被osx使用不能打开”解决办法
在终端里面粘贴xattr -d com.apple.FinderInfo(此处按一下空格),然后把文件拖进终端窗口,按一下回车就好了
- 数据分页处理系列之一:Oracle表数据分页检索SQL
关于Oracle数据分页检索SQL语法,网络上比比皆是,花样繁多,本篇也是笔者本人在网络上搜寻的比较有代表性的语法,绝非本人原创,贴在这里,纯粹是为了让"数据分页专题系列"看起 ...
- git pull
今天在服务器上git pull是出现以下错误: error: Your local changes to the following files would be overwritten by mer ...