列表

详情


NP102. 提取数字电话

描述

牛牛翻看以前记录朋友信息的电话薄,电话号码几位数字之间使用-间隔,后面还接了一下不太清楚什么意思的英文字母,你能使用正则匹配re.sub将除了数字以外的其他字符去掉,提取一个全数字电话号码吗?

输入描述

输入一行字符串,字符包括数字、大小写字母和-

输出描述

输出该字符串提取后的全数字信息。

示例1

输入:

2022-063-109NiuMei

输出:

2022063109

原站题解

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

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

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

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

import re
phone_input = raw_input()
print(re.sub('[^\d]', '', phone_input))

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

import re 
str = input() 
print(''.join(re.findall(r'\d+',str)))

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

import re
s = input()
res = re.sub(r'[a-zA-z]+','',s)
print(res.replace('-',''))

Python 3 解法, 执行用时: 30ms, 内存消耗: 4516KB, 提交时间: 2022-08-03

import re
s=input()
result=re.sub(r'[^\d]','',s)
print(result)

上一题