题目描述
样例输出
输出123058789,函数返回值9
输出54761,函数返回值5
接口说明
函数原型:
unsignedint Continumax(char** pOutputstr, char* intputstr)
输入参数:
char* intputstr 输入字符串;
输出参数:
char** pOutputstr: 连续最长的数字串,如果连续最长的数字串的长度为0,应该返回空字符串;如果输入字符串是空,也应该返回空字符串;
返回值:
连续最长的数字串的长度
输入描述:
输入一个字符串。
输出描述:
输出字符串中最长的数字字符串和它的长度。如果有相同长度的串,则要一块儿输出,但是长度还是一串的长度
示例1
输入
abcd12345ed125ss123058789
输出
123058789,9
思路:
1找出数字串:对所有非数字字符用*,得到新的串,以*分割
2找出所有数字串的最长长度
3遍历数字串将长度为最大值的都输出
while True:
try:
string = input().strip()
newstr = ''
maxlength=0
result=''
for each in string:
if each.isdigit():
newstr += each
else:#不是数字的在后面加入*以分割
newstr +='*'
strlist=newstr.split('*')
for item in strlist:#因为相同长度的串要一起输出,所以先找出最长的长度
maxlength=max(maxlength,len(item))
for item in strlist:#再将长度为最长长度的串一起输出
if len(item)==maxlength:
result+=item
print(result+','+str(maxlength))
except:
break
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner in=new Scanner(System.in);
while(in.hasNext()){
String str=in.nextLine();
String newstr="" ;
for(char c:str.toCharArray()){
if (c>='0'&&c<='9')
newstr+=c;
else
newstr+="a";
}
String[] strs=newstr.split("a");
int maxlength=0;
for(String s:strs){
if(s.length()>maxlength)
maxlength=s.length();
}
for(String s:strs){
if(s.length()==maxlength){
System.out.print(s);
}
}
System.out.println(","+maxlength);
}
}
}