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. Hbase balancer RSgroup shell 脚本

    #!/bin/bashTMP_FILE=tmp_groupsGROUPS_FILE=groups.txtecho "list_groups" | hbase shell > ...

  2. weblogic创建控制台启动脚本以及创建服务器

    一.创建控制台脚本 二.创建认证文件 通过上面创建的脚本进行启动的时候,会因为密码问题导致起不来,因为在startWebLogic.sh文件中,没有配置用户名和密码.而且通过上面创建的脚本,启动的时候 ...

  3. MyBatis-Cache

    一.一级缓存 /** * 一级缓存(本地缓存):SqlSession 级别.一级缓存是默认开启的,为 SqlSession 级别的一个Map * 与数据库同一次会话期间查询到的数据会放在本地缓存中,以 ...

  4. python 存储引擎 mysql(库,表, 行) 单表多表操作 (foreign key) sql_mode pymysql模块讲解

    ##################总结############### mysql 常用数据类型 整型:tinyint  int(42亿条左右)  bigint 小数:float double dec ...

  5. 鼠标右键Table的td弹出多级菜单,双击td编辑

    <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="C ...

  6. ruby读取exce文件,使用roo---Gem

    module SEquipsHelper #设备台账,从excel文件读取信息 require 'roo' #require 'roo-xls' #读取excel文件 # SEquipsHelper. ...

  7. Mysql分页优化

    数据表 collect ( id, title ,info ,vtype) 就这4个字段,其中 title 用定长,info 用text, id 是主键,vtype是tinyint,vtype是索引. ...

  8. 20秒教你如何写maven2的pom文件的依赖包

    所有Maven 库 需要的包 及 pom.xml 中 groupId  artifactId version 都可在这个网上收到. 例如:需要 通过 maven 在项目 中 添加 geronimo-k ...

  9. cocos2dx 3.4 测试例 目录

    ActionManager 动作管理Actions-Basic   按引导移动Actions-Ease  缓动Actions-Progress  渐渐显示Allocator-Basic  std 的 ...

  10. Coursera Deep Learning 2 Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization - week2, Optimization algorithms

    Gradient descent Batch Gradient Decent, Mini-batch gradient descent, Stochastic gradient descent 还有很 ...