POJ3096—Surprising Strings

简介: POJ3096—Surprising Strings

题目:

所述d-对字母的字符串的是有序对的是彼此的距离d字母。字符串是d-独特的,如果所有的d-对是不同的。的字符串是令人惊讶的,如果它是d-独特的每一个可能的距离D.

考虑串ZGBG。其0对是ZG,GB和BG。由于这三对都是不同的,ZGBG是0,唯一的。类似地,1-对ZGBG的是ZB和GG,并且由于这两个对是不同的,ZGBG是1-唯一的。最后,只有2对ZGBG的是ZG,所以ZGBG是2-唯一的。因此ZGBG是令人惊讶的。 (注意这样一个事实,ZG既是0对和2对ZGBG的是无关紧要的,因为0和2是不同的距离。)

确认:此问题是由科学美国人的2003年12月号的“迷宫历险记”栏目的启发。

输入

输入包括至多79个大写字母的一个或多个非空字符串,由本身的线的每个字符串,随后仅含有一个星号的线的所述输入信号的结束。

产量

为字母,输出它是否被使用以下所示的精确的输出格式奇每个字符串。

Sample Input

ZGBG
X
EE
AAB
AABA
AABB
BCBABCC
*

Sample Output

ZGBG is surprising.
X is surprising.
EE is surprising.
AAB is surprising.
AABA is surprising.
AABB is NOT surprising.
BCBABCC is NOT surprising.

解题思路:这个题主要是用STL中的map容器,首先每一次把间隔为0、1、2…的串找出来,然后存入map容器中,map 的型号为<string int 》,然后去遍历一遍间隔不同的map,如果出现相同字符串大于2的就输出not;

程序代码:

#include<iostream>
#include<algorithm>
#include<map>
#include<string>
#include<string.h>
using namespace std;
int main()
{
  char s[100],s1[100];
  int n,i,j,k,t,flag,count;
  char x,y;
  while(scanf("%s",s)!=EOF)
  {
    if(s[0]=='*')
      break;
    flag=0;
    n=strlen(s);
    for(i=1;i<=n-2;i++)
    {
      k=0;
      t=1;
      map<string,int> m1;
      while(k+i<n)
      {
        s1[0]=s[k];
        s1[1]=s[k+i];
        m1[s1]++;
        k++;
      } 
      map<string,int>::iterator it1;
      for(it1=m1.begin();it1!=m1.end();it1++)
      {
        if((*it1).second>=2)
        {
          flag=1;
          break;  
        }     
      }
      if(flag==1)
          break;  
    }
    if(flag==0)
      printf("%s is surprising.\n",s);
    else
      printf("%s is NOT surprising.\n",s);
  }
  return 0;
} 
相关文章
|
计算机视觉
OpenCV(二十三):中值滤波
OpenCV(二十三):中值滤波
631 0
|
运维 Kubernetes 安全
云原生安全 — seccomp应用最佳实践
近期针对Linux内核的CVE漏洞频出,CVE-2022-0185、CVE-2022-0185、CVE-2022-0847是威胁评分较高且热度较高的几个典型漏洞,相关的POC/EXP利用代码也已经在互联网上公开披露。对于容器场景来说,攻击者的攻击路径也比较相似,都是利用unshare等高危系统调用在新的usernamespace拿到CAP_SYS_ADMIN等高权限capabilities后利用漏
3733 0
云原生安全 — seccomp应用最佳实践
|
并行计算 算法 搜索推荐
简单学习一下AES算法:GCM、ECB、CFB、OFB等
简单学习一下AES算法:GCM、ECB、CFB、OFB等
3705 0
|
12月前
|
监控 算法 Java
《Unity项目实战:动态加载引发的显存危机全链路排查与重构实践》
本文聚焦基于Unity引擎开发的跨平台开放世界游戏中动态加载引发的周期性显存崩塌问题。游戏上线后,玩家频繁遭遇画面卡顿、角色异常等问题,经排查发现其根源在于多线程同步机制缺陷与资源管理失衡。通过日志分析、性能监控及混沌测试,团队定位到音频线程、物理引擎与主渲染线程的交叉等待环路,并针对性地实施了线程隔离、资源分级加载、Mono管理器优化等解决方案。此次危机揭示了动态加载系统中隐性依赖关系的复杂性,强调边界条件测试与跨领域协同的重要性,为同类游戏开发提供了宝贵的容错设计经验。
249 7
|
12月前
|
传感器 人工智能 运维
《重构工业运维链路:三大AI工具让设备故障“秒定位、少误判”》
本文记录工业设备智能运维系统的多AI协同开发实战:面对某重工企业200+台设备的碎片化运维日志(40%描述模糊)、15%故障误判率及“10分钟定位故障”需求,构建GitHub Copilot、TensorBoard、LogRocket协同矩阵。Copilot将日志结构化率提至92%,核心代码开发从7天缩至3天;TensorBoard解决样本不均衡问题,故障识别精度从82%升至91%,还优化传感器部署降本15万;LogRocket通过时序关联与案例匹配,将故障定位从45分钟缩至8分钟,23%故障提前预警。
1103 12
|
人工智能 弹性计算 监控
《容器化赋能:C++人工智能模型部署的卓越之道》
本文探讨了容器化技术在C++人工智能模型部署中的应用。通过Docker等容器化工具,C++模型及其依赖项被打包成独立的容器镜像,确保了环境一致性、快速部署与弹性伸缩,以及资源的高效利用。文章详细介绍了容器化技术的优势、实践要点及具体应用场景,如智能安防监控和工业自动化质量检测,展示了容器化技术如何助力C++人工智能模型高效落地。
444 15
|
数据采集 人工智能 数据可视化
InternVL 2.5,首个MMMU超过70%的开源模型,性能媲美GPT-4o
近期Internvl2.5发布,性能与GPT-4o和Claude-3.5-sonnet等领先的商业模型相媲美,成为首个在MMMU上超过70%的开源模型,通过链式思考(CoT)推理实现了3.7个百分点的提升,展示了强大的测试时间可扩展性潜力。
1490 25
|
机器学习/深度学习 人工智能 机器人
智能废物管理系统:城市垃圾的自动化处理
【10月更文挑战第24天】智能废物管理系统利用物联网、大数据、人工智能和自动化机器人等技术,实现城市垃圾从分类、收集到处理的全过程自动化,提高处理效率,优化资源配置,提升居民参与度,降低运营成本,推动城市可持续发展。
1667 2
|
算法 Linux iOS开发
Zipline 3.0 中文文档(一)(2)
Zipline 3.0 中文文档(一)
832 7