首页 > 其他分享 >HJ92_在字符串中找出连续最长的数字串_技巧

HJ92_在字符串中找出连续最长的数字串_技巧

时间:2023-04-05 17:58:13浏览次数:38  
标签:数字串 print len ind l1 字符串 new HJ92 append

思路:按照模拟思路,没有技巧地,代码如2。

新思路:把非数字转换成空格,使用空格作为标记切片。

!!!

注意:字符串变更,要用replace()方法生成新字符串!!!

 

参考高赞答案,重写代码如1:

 1 import sys
 2 a=[]
 3 for line in sys.stdin:
 4     a.append(line.strip())
 5 for i in a:
 6     for j in range(len(i)):
 7         if not i[j].isdigit():
 8             i=i.replace(i[j]," ")#i[j]=" ",字符串变更不可通过赋值方法,只能通过replace()方法生成新字符串
 9     new=i.split()
10     c=[len(i) for i in new]
11     s=""
12     for i in new:
13         if len(i)==max(c):
14             s=s+i
15     print(",".join([s,str(max(c))]))

 

 1 import sys
 2 a=[]
 3 for line in sys.stdin:
 4     a.append(line.strip())
 5 for i in a:
 6     c=-1
 7     l1=[]
 8     l,ind=[],[]
 9     for j in i:
10         c+=1
11         
12         if j.isdigit():
13             #print(j,l)
14             if l:
15                 if c-1==ind[-1]:
16                     l.append(j)
17                     ind.append(c)
18                 else:
19                     #print(j)
20                     l1.append(l.copy())
21                     l,ind=[],[]
22                     l.append(j)
23                     ind.append(c)
24                 if c==len(i)-1:
25                     l1.append(l.copy())
26                     #print(j,l1)
27             else:
28                 #print(j)
29                 l.append(j)
30                 ind.append(c)
31     lenth=[len(i) for i in l1]
32     new=""
33     for i in l1:
34         if len(i)==max(lenth):
35             new=new+"".join(i)
36     print(",".join([new,str(max(lenth))]))

 

标签:数字串,print,len,ind,l1,字符串,new,HJ92,append
From: https://www.cnblogs.com/tanyuanqing/p/17290064.html

相关文章

  • python split()截取一部分的字符串及按照指定字符或者长度 截取字符串
     str='https://www.baidu.com/pdf/abcdefg.pdf'#输出字符串,>>>https://www.baidu.com/pdf/abcdefg.pdfprint(str)#做为一个整体截取,>>>['https://www.baidu.com/pdf/abcdefg.pdf']print(str.split())#把字符串分割,>>>[&......
  • .net 将对象序列化成字符串,出现转义符问题
    .net将对象序列化成字符串,出现转义符问题问题出现原因:如果出现转义符,一般是因为进行了两次序列化才导致这样的情况的,也就是说,内层某个key的value已经序列化成字符串了,外层再次序列化的时候,又对内层进行了第二次序列化,所以导致内层的属性或者说是键值对,出现了转义符。解决办法......
  • 关于python中使用json.loads()将字符串数据转换成字典
    在json模块中,我们可以经常会用到load()与loads(),其中两者的区别如下json.load()从json文件中读取数据转抱为dict类型json.loads()将str类型的数据转换为dict类型这里笔者主要说明json.loads()的用法,将字符串转转换成字典,如下str2dict.py脚本内容:importjsonJsonStr='''{......
  • CF1200E Compress Words 字符串哈希/双重哈希
    题目地址题意:给你若干个字符串,答案串初始为空。第i步将第i个字符串加到答案串的后面,但是尽量地去掉重复部分(即去掉一个最长的、是原答案串的后缀、也是第i个串的前缀的字符串),求最后得到的字符串。Solution字符串哈希练习题,做完之后对哈希的理解更深刻了因为求原字符串的......
  • 字符串和数字之间的相互转化
    通过包装类的ValueOf()方法,可以将字符串转换为想要的包装类,Byte、Short、Integer、Long、Float、Double都有对应的ValueOf()方法。 基本可以实现相互转换,非常常用!1inty=102222;2Stringstr="102222";34Intege......
  • C语言字符串IP转4字节
    点击查看代码#include<stdio.h>#include<string.h>voidstr2ip(char*in,unsignedchar*out){ inti; inttmp[4]={0}; sscanf(in,"%d.%d.%d.%d",tmp,tmp+1,tmp+2,tmp+3); for(i=0;i<4;i++) { out[i]=tmp[i]&0x......
  • 一种高效解析固定分隔符的字符串的sql方法
    sql程序员经常会遇到,需要将固定分隔符字符串解析的情况。例如这样:变成这样:  只有几行还好办,可以从左边循环截取,但是如果是成千上万行,无疑这种是及其低效的。现在我提供一种利用数字辅助表的方法来实现这种效果。所谓数字辅助表就是连续的数字1,2,3......  当然数字辅助......
  • JS 字符串补0
    padStart用另一个字符串填充当前字符串(如果需要的话,会重复多次),以便产生的字符串达到给定的长度。从当前字符串的左侧开始填充。语法padStart(targetLength)padStart(targetLength,padString)参数targetLength当前字符串需要填充到的目标长度。如果这个数值小于当前字......
  • 华为OD机试 最长的元音字符串
    本期题目:最长的元音字符串题目定义当一个字符串只有元音字母(a,e,i,o,u,A,E,I,O,U)组成,称为元音字符串,现给定一个字符串,请找出其中最长的元音字符串,并返回其长度,如果找不到请返回0,字符串中任意一个连续字符组成的子序列称为该字符串的子串输入一个字符串其长度 0<lengt......
  • 最长连续序列(并查集、数组)、复原 IP 地址(字符串、回溯)、删除链表的倒数第 N 个结
    最长连续序列(并查集、数组)给定一个未排序的整数数组nums,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。请你设计并实现时间复杂度为O(n)__的算法解决此问题。示例1:输入:nums=[100,4,200,1,3,2]输出:4解释:最长数字连续序列是[1,2,3,4]。它的长度为4......