import re

def get_str(i,num):
str_list = re.findall(r'.{{{str_length}}}'.format(str_length=i), num)
return str_list def add_str(res,i,str_list):
if res.get(i):
res[i] += str_list
else:
res.update({i: str_list})
return res data = map(int, raw_input().strip().split())
n, q = data[0], data[1] books={}
reader={}
for i in range(0,n):
book = {}
num=str(raw_input().strip())
length=len(num)
book = add_str(book, length, [num])
for item_len in range(1,length):
length_temp=item_len
for j in range(0,length_temp):
str_list = get_str(item_len, num[j:])
book=add_str(book,item_len, str_list)
books.update({i:book})
# print books
result=[]
for i in range(0,q):
num=raw_input().strip()
length,name=num.split()
length=int(length)
book_list = books[i].get(length, [])
#print name,book_list
if name in book_list:
result.append(name)
else:
result.append('-1')
for i in result:
print i

  

检索每个字符串的子串(python散列表实现)的更多相关文章

  1. Python 散列表查询_进入<哈希函数>为结界的世界

    1. 前言 哈希表或称为散列表,是一种常见的.使用频率非常高的数据存储方案. 哈希表属于抽象数据结构,需要开发者按哈希表数据结构的存储要求进行 API 定制,对于大部分高级语言而言,都会提供已经实现好 ...

  2. python 散列表查找

    class HashTable: def __init__(self, size): self.elem = [None for i in range(size)] self.count = size ...

  3. python中列表和元组以及字符串的操作

    python中列表是非常好用的.不过有一些使用小细节还需要注意一下. tag[32:-4] 从index为32到tag的倒数第4个字符. 如果索引为32的值在倒数第4个字符的右边,那么将输出为空.只要 ...

  4. Python数据结构——散列表

    散列表的实现常常叫做散列(hashing).散列仅支持INSERT,SEARCH和DELETE操作,都是在常数平均时间执行的.需要元素间任何排序信息的操作将不会得到有效的支持. 散列表是普通数组概念的 ...

  5. python实现散列表的直接寻址法

    散列表(Hash table,也叫哈希表),是根据键(Key)而直接访问在内存存储位置的数据结构.也就是说,它通过计算一个关于键值的函数, 将所需查询的数据映射到表中一个位置来访问记录,这加快了查找速 ...

  6. Python:说说字典和散列表,散列冲突的解决原理

    散列表 Python 用散列表来实现 dict.散列表其实是一个稀疏数组(总是有空白元素的数组称为稀疏数组).在一般书中,散列表里的单元通常叫做表元(bucket).在 dict 的散列表当中,每个键 ...

  7. C++ STL中的map用红黑树实现,搜索效率是O(lgN),为什么不像python一样用散列表从而获得常数级搜索效率呢?

    C++ STL中的标准规定: map, 有序 unordered_map,无序,这个就是用散列表实现 谈谈hashmap和map的区别,我们知道hashmap是平均O(1),map是平均O(lnN)的 ...

  8. 【Python算法】哈希存储、哈希表、散列表原理

    哈希表的定义: 哈希存储的基本思想是以关键字Key为自变量,通过一定的函数关系(散列函数或哈希函数),计算出对应的函数值(哈希地址),以这个值作为数据元素的地址,并将数据元素存入到相应地址的存储单元中 ...

  9. Python与数据结构[4] -> 散列表[0] -> 散列表与散列函数的 Python 实现

    散列表 / Hash Table 散列表与散列函数 散列表是一种将关键字映射到特定数组位置的一种数据结构,而将关键字映射到0至TableSize-1过程的函数,即为散列函数. Hash Table: ...

随机推荐

  1. STM32学习笔记:【001】时钟树与RCC

    导言 如果学过单片机的同学应该不会陌生,学习51单片机时最经常听到的就是“最小系统”. 最小系统里面少不了晶振,否则单片机无法工作. 单片机需要晶振(时钟源)来工作,那么对于STM32芯片同样如此. ...

  2. SpringSecurity3Demo【原】

    oschina git地址: https://gitee.com/KingBoBo/SpringSecurity3Demo.git

  3. c++中sizeof的理解

    1. 例题 #include <iostream> class A {}; class B { char m_data; }; class C { ]; }; class D { char ...

  4. MySQL的一些基本命令笔记(1)

    关系型数据库的建模构建块: 1.数据是以行和列的形式存储数据. 2.这一系列的行和列称为表(关系) 3.表中的每一行表示一条记录(元组) 4.表中的每一列表示记录的一个属性 5.一组表组成了数据库 6 ...

  5. oracle行转列函数以及一些窗口函数(PIVOT ,OVER)

    可以查看博客园上传的文件 pivot  除了要转成列的字段(classnum,classid)值不一样,其他值都应该相同,否则转的数据有问题

  6. LinkedStack的底层实现

    package zy813ture; import java.util.EmptyStackException; public class MyLinkedStack1 { private Node ...

  7. ORM映射和路由系统

    ORM映射: OBJECT ====> 对象 RELATION ===> 联系 MODEL ===> 数据模型 安装pyMysql 安装flask-sqlAchemy 导入: fro ...

  8. python 的基础 学习 第一天

    1 python 的变量 1,变量必须 由数字,字母和下划线组成 2,变量不能由数字开头,例如 :22hhh , 3,变量不能是由Python中的关键字组成. 4,变量具有可描述性,不易过长. 5,变 ...

  9. java中的绝对路径和相对路径

    1.基本概念的理解 绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如:C:/xyz/test.txt 代表了test.txt文件的绝对路径.http://www ...

  10. 使用Retrofit时常用到的注解