博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
计蒜客 搜狗输入法(单输出)
阅读量:7005 次
发布时间:2019-06-28

本文共 1889 字,大约阅读时间需要 6 分钟。

 搜狗输入法最近的用户输入中出现了一种新的输入模式,形如 “0k1234567”,搜狗的工程师发现这一模式后了解到,这是一种新被提出的对于十五进制数字的标记模式,其中 “0k” 是标记进制为15的前缀标记,之后的部分 “1234567” 是实际的十五进制的数字串。
在发现这一标记模式后,搜狗的工程师开始尝试在已有的分词算法上进一步加入对于十五进制数字串的处理,把网页上的这种形式的 15 进制数正确地提取出来。我们知道,标记十五进制的 “0k” 中 k 必须是小写,数字 0 到 14 在这套标记模式下会被依次表示为:0k0, 0k1, ..., 0k9, 0kA, 0kB, 0kC, 0kD, 0kE。也就是说 15 进制数字中只会出现 0-9、k 和 A-E。
值得注意的是,数字表示中不能有多余的 0,比如 0k05 是不能被当做一个十五进制数字的。另外,作为一种约定,当出现 “0k90k8” 时,只有 0k90 是符合期望的十五进制数字,即总是从左至右依次提取出最长的十五进制数字。如果希望表达 0k9 和 0k8 这两个数字的连写情况时,则会被写成 “0k9'0k8” 这一的形式(单引号代表其他任意非数字字符)。
搜狗的工程师希望将用户输入中符合上述要求的所有十五进制数依次输出。你能帮他实现么?
输入格式
输入一行字符串 str (1 ≤ |str| ≤ 106),表示搜狗工程师得到的用户输入。用户输入中的字符一定是数字 (0 - 9) 或大小写英文字母 (a - z, A - Z)。
输出格式
输出包括若干行,每行输出一个提取出的十五进制数(形式如同:0k1234),分别对应输入字符串中含有的若干个符合标记模式的十五进制数字;输出时,请以数字在原字符串中的顺序依次输出。
样例1
输入:
sjfjfhua0kA0000lmNhdhahdfhGgdJG90K10k110k120kF
输出:
0kA0000
0k110
 
 
 
1 #include
2 #include
3 #include
4 using namespace std; 5 char a[1000001]; 6 int main() 7 { 8 int len,i,j,k,flag=0; 9 gets(a);10 len=strlen(a);11 for(i=0;i
='A'&&a[i+2]<='E'||a[i+2]>='0'&&a[i+2]<='9')16 printf("0k");17 if(a[i+2]=='0')18 {19 printf("0");20 21 i=i+2;22 printf("\n");23 }24 else{25 flag=0;26 for(j=i+2;j
='A'&&a[j]<='E'||a[j]>='0'&&a[j]<='9')29 {30 printf("%c",a[j]);31 flag=1;32 }33 else34 break;35 36 }37 i=j;38 if(flag)39 printf("\n");40 }41 }42 }43 44 return 0;45 }

 

转载于:https://www.cnblogs.com/wangmengmeng/p/4656921.html

你可能感兴趣的文章
开通博客的第一天
查看>>
SQL 获取数据
查看>>
android 实现 JNI NDK 入门例子教程+源码
查看>>
微信小程序把玩(三十六)Storage API
查看>>
16次课( lvm讲解、 磁盘故障小案例)
查看>>
Windows Embedded Compact 7数据库开发(下)
查看>>
TypeScript 开发系列(一)——简介与简单创建
查看>>
优化网站架构,最大限度减少重复劳动
查看>>
BeanComparator实现ArrayList中的元素按多个属性复合排序
查看>>
对license数据的挖掘与分析
查看>>
listview当选中某一个item时设置背景色其他的不变
查看>>
debian打包
查看>>
zabbix 监控平台搭建过程中的报错与解决方法总结
查看>>
Java中什么是实体类和实体类的作用
查看>>
客户端putty, xshell连接linux中vim的小键盘问题
查看>>
Vue.js 2.0 由浅入深,第二天 day02
查看>>
JavaScript若干盲点总结二
查看>>
Oracle数据库 goldgate配置
查看>>
shell脚本编程进阶
查看>>
glob匹配模式
查看>>