zoukankan      html  css  js  c++  java
  • 计蒜客 搜狗输入法(单输出)

     搜狗输入法最近的用户输入中出现了一种新的输入模式,形如 “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<iostream>
     2 #include<stdio.h>
     3 #include<string.h>
     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<len-2;i++)
    12       {
    13           if(a[i]=='0'&&a[i+1]=='k')
    14           {
    15               if(a[i+2]>='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("
    ");
    23             }
    24             else{
    25                 flag=0;
    26               for(j=i+2;j<len;j++)
    27               {
    28                 if(a[j]>='A'&&a[j]<='E'||a[j]>='0'&&a[j]<='9')
    29                     {
    30                         printf("%c",a[j]);
    31                     flag=1;
    32                     }
    33                     else
    34                      break;
    35                 
    36             }
    37             i=j;
    38             if(flag)
    39               printf("
    ");
    40             }
    41           }
    42       }
    43 
    44     return 0;
    45 }
  • 相关阅读:
    HCNA配置ssh远程登陆
    HCNA配置telnet远程管理
    HCNA配置接口IP地址
    HCNA配置console线路密码aaa认证
    HCNA配置console线路密码password认证
    CentOS6.9上安装FreeSWITCH1.6.19
    vos语音业务规范操作承诺函
    vos对接时业务确认及信息安全责任承诺书
    Ubuntu 16下安装64位谷歌Chrome浏览器
    Python更新pip出现错误解决方法
  • 原文地址:https://www.cnblogs.com/wangmengmeng/p/4656921.html
Copyright © 2011-2022 走看看