当前位置: 首页 > wzjs >正文

诚信网站认证99idc舆情监测系统排名

诚信网站认证99idc,舆情监测系统排名,泰州网站开发公司,动态网站开发用题目描述给定一个由若干整数组成的数组nums,请检查数组是否是由某个子数组重复循环拼接而成,请输出这个最小的子数组。输入描述第一行输入数组中元素个数n,1 ≤ n ≤ 100000第二行输入数组的数字序列nums,以空格分割,0…

题目描述

给定一个由若干整数组成的数组nums,请检查数组是否是由某个子数组重复循环拼接而成,请输出这个最小的子数组。

输入描述

第一行输入数组中元素个数n,1 ≤ n ≤ 100000

第二行输入数组的数字序列nums,以空格分割,0 ≤ nums[i] < 10

输出描述

输出最小的子数组的数字序列,以空格分割;

备注

数组本身是其最大的子数组,循环1次可生成的自身;

用例1

输入

9
1 2 1 1 2 1 1 2 1

输出

1 2 1

说明

数组[1,2,1,1,2,1,1,2,1] 可由子数组[1,2,1]重复循环3次拼接而成

解答

# KMP 算法
# 如果字符串s是由最小重复子串x重复产生的,
# 则最小重复子串x的长度 = s.length - 最长相同前后缀.length# 输入获取
n=int(input())
nums=list(map(int,input().split()))def getNext():# 创建长度为n的next数组,初始值全为0nxt = [0] * n# 初始化指针:j遍历字符串,k跟踪当前匹配的前缀长度j = 1  # 从第二个字符开始遍历k = 0  # 当前匹配的前缀长度# 遍历整个数组(从索引1开始)while j < n:# 当前字符与前缀的下一个字符匹配J=nums[j] # 短匹配串元素K=nums[k] # 长主串元素if J == K:nxt[j] = k + 1  # 记录匹配长度j += 1  # 移动主指针k += 1  # 增加前缀长度,指针后移else:if k > 0: # 不是长主串的第一个元素# 利用已计算的next值回溯(KMP核心优化)k = nxt[k - 1]else:# 无法回溯时,当前字符的next值为0nxt[j] = 0j += 1return nxt  # 返回计算完成的next数组# 算法入口
def getResult():# KMP算法 求nxt数组nxt = getNext()# 最长相同前后缀长度m=nxt[n-1]# 最小重复子串的长度length=n-m if n%(n-m)==0 else nreturn " ".join(map(str,nums[0:length]))# 算法调用
print(getResult())
http://www.dtcms.com/wzjs/445012.html

相关文章:

  • 做门窗网站怎么做广告服务平台
  • 荥阳网站建设郑州竞价托管
  • 西安免费做网站公司西安快速排名优化
  • 大型电子商务系统网站建设南京seo
  • 台湾宜兰县政府建设局网站网站快速优化排名
  • 做中医药网站有前景吗优秀营销软文范例100字
  • b2b网站做推广有效果吗市场调研报告模板范文
  • 免费网站建设特色免费检测网站seo
  • 哪些网站可以做设计赚钱搜索引擎网络推广方法
  • 小狗做爰网站seo sem关键词优化
  • 目前做外贸的网站哪个比较好营销培训课程视频
  • 政府网站信息内容建设报告怎么打开网站
  • 做网站宁波竞价托管推广多少钱
  • 郑州网站建设没效果广州网络营销推广
  • 建程网官网平台武汉seo搜索引擎
  • 网站运营公司哪家值得推荐网店推广费用多少钱
  • github网站注册账号怎么做免费推广链接
  • 哈尔滨做网站的公司seo点击软件
  • 网站建设 生产引流推广接单
  • 武隆网站建设aso优化怎么做
  • 微信上可以做网站吗怎么宣传自己的店铺
  • 家政服务网站源码免费刷推广链接的软件
  • 企业网站怎么建设免费seo视频教程
  • 杭州市人民政府网站第三方网站流量统计
  • 做网站开票是多少个点的票优化培训方式
  • 中央广播电视总台2023年元宵晚会江苏seo
  • 网站建设与管理 管理课程如何做好营销
  • 室内设计师培训班哪家好seo外链代发
  • 做企业网站所需要的资料宁波seo资源
  • 网站改版建设软文推广一般发布在哪些平台