Find the longest string of digits in a string (python && C ++ Method)

Find the longest string of digits (Python solution) in a string

Input abcd12345ed125ss123456789
output 123456789

python3

import re
print(max(re.findall(r"\d*", input()), key=len))

Wherein findall function
findall function is a function of the regular expression string matching according to certain rules, and returns a list , a regular expression

. # 点可代表一切字符

\ # 起转义作用

[...] # 指代方括号中的任意字符

\d # 指代数字0-9

\D # 指代非数字

\s # 指代一切空格,包括tab制表符、空格、换行等

\S # 指代非空格

\w # 指代大小写字母、数字和下划线

\W # 指代非大小写字母、数字和下划线

* # 匹配前面字符 >=0 次

+ # 匹配前面字符1次及以上

? # 匹配前面字符0次或1次

{m} # 匹配m次

{m,n} # 匹配m到n次

{m,} # 至少匹配m次

\ d * is meant a continuous string down the digital matched
r meant to be passed according to the original string string
** max (list, key = len ) ** returned from the list according to the longest length the one element.

C++

#include<iostream> 
#include<string> 
using namespace std;
int main()
{
	string str, res, cur;
	cin >> str;
	for (int i = 0; i <= str.length(); i++)
	{        
		// 数字+=到cur        
		if (str[i] >= '0' && str[i] <= '9')
		{
			cur += str[i];
		}
		else
		{            
			// 找出更长的字符串,则更新字符串  
			if (res.size() < cur.size())
				res = cur;            
			else               
				cur.clear();
		}
	}    
	cout << res;    
	return 0;
}
Published 52 original articles · won praise 26 · views 3417

Guess you like

Origin blog.csdn.net/weixin_43796685/article/details/103034712