列表

详情


NP103. 截断电话号码

描述

牛牛记录电话号码时,习惯间隔几位就加一个-间隔,方便记忆,同时他还会在电话后面接多条#引导的注释信息。拨打电话时,-可以被手机正常识别,#引导的注释信息就必须要去掉了,你能使用正则匹配re.match将前面的数字及-信息提取出来吗,去掉后面的注释信息。

输入描述

输入一行字符串,包括数字、大小写字母、#、-及空格。

输出描述

输出提取的仅包含数字和-的电话号码。

示例1

输入:

123-3456-789 #NiuMei #1 cool girl

输出:

123-3456-789

原站题解

C++ 解法, 执行用时: 3ms, 内存消耗: 396KB, 提交时间: 2022-07-30

#include<iostream>
#include<string>
using namespace std;

int main(){
    string s;
    char c;
    while(cin>>c){
        if(c=='#') break;
        s.push_back(c);
    }
    cout<<s;
}

Python 解法, 执行用时: 13ms, 内存消耗: 2984KB, 提交时间: 2022-08-04

import re
phone_text=raw_input()
print(re.match('(\d-*)+',phone_text).group())

Python 3 解法, 执行用时: 32ms, 内存消耗: 4492KB, 提交时间: 2022-07-29

import re
s=input()
print((re.match("[0-9|-]+",s)).group())

Python 3 解法, 执行用时: 32ms, 内存消耗: 4524KB, 提交时间: 2022-08-04

import re  
n = input() 
res = re.match(r'(\d[-]?)*',n) 
print(res.group())

Python 3 解法, 执行用时: 32ms, 内存消耗: 4616KB, 提交时间: 2022-07-28

import re
phone_text = input('') 
pattern = "[0-9|-]*" 
result = re.match(pattern, phone_text) 
print(result.group())

上一题