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按照十六进制计算的 ...
随机推荐
- OC字符串NSString
========================== 面向对象编程进阶和字符串 ========================== Δ一.类的设计模式—单例 [单例]程序允许过程中,有且仅有一块内存 ...
- php 图片上传 使用微秒做文件名
$m = microtime ();$mtime = explode(' ' ,$m);$mtime1 = $mtime[1];$mtime2 = substr($mtime[0], 2, 6);$p ...
- teiid入门
teiid,是jboss组件中进行数据虚拟化的部件(data virtualization).但是对teiid的介绍比较少,这里记录一下我的学习过程. 一.编译安装teiid teiid的安装,可以选 ...
- R语言中的循环函数(Grouping Function)
R语言中有几个常用的函数,可以按组对数据进行处理,apply, lapply, sapply, tapply, mapply,等.这几个函数功能有些类似,下面介绍下这几个函数的用法. Apply 这是 ...
- MySQL客户端工具 SQLyog
我最喜欢它的History功能,把执行过的操作对应语句都输出出来,一些麻烦的语句用GUI操作后,还能保存对应的sql语句.不错! 官网:http://www.webyog.com 下面是官方的介绍:S ...
- 高效coder,筹备开源框架toutou.escort.js
背景:JavaScript在工作中运用的非常广泛,作为一门弱类型语言,在使用JavaScript的时候,很多事情需要coder manual的去完成,这无疑增加了coder的工作量. 扩展:在这样的背 ...
- <a>标签,鼠标经过或者停留触发延时响应事件
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAcUAAAEoCAIAAACmeX2PAAAgAElEQVR4nOzdd3xUdb74f3+Pu3v33t ...
- shell执行mysql命令
难点主要在参数的传递方式吧,不过查资料后发现很简单. 1.使用-e参数传递命令,适用于简单语句 mysql -uuser -ppasswd -e "create database ...
- Java enum的用法详解
(转自:http://www.cnblogs.com/happyPawpaw/archive/2013/04/09/3009553.html) 用法一:常量 在JDK1.5 之前,我们定义常量都是: ...
- setTimeout()与setInterval()——走马灯效果
JavaScript中的setTimeout()与setInterval()都是指延时执行某一操作. 但setInterval()指每隔指定时间执行某操作,会循环不断地执行该操作:setTimeout ...