在一行内输出str中里连续最长的数字串。
python3实现:
sentence =input()
count = 0
max_count = 0
str_num = ['1','2','3','4','5','6','7','8','9']
num = []
max_num = []
for x in sentence:
if x in str_num:
count+=1
num.append(x)
if count > max_count:
max_count = count
max_num = num
else:
num = []
count = 0
print("".join(max_num)) #将字符连接成字符串。用""分开
java实现:
/*算法思想:用max表示经过的数字长度最大值,count表示数字计数器,当为字母时重置为0
*end表示数字尾部,每次满足数字时,对max进行判断,当max小于于count时,更新max和end
*/
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine();
int max =0,count=0,end=0;
for(int i=0;i<str.length();i++){
if(str.charAt(i)>='0' && str.charAt(i)<='9'){
count++;
if(max<count){
max= count;
end = i;
}
}else{
count = 0;
}
}
System.out.println(str.substring(end-max+1,end+1)); //end+1是因为前开后闭
}
}
以上就是java和python实现的主要代码,有更好的解决方法欢迎指教。