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;
} 
相关文章
|
消息中间件 RocketMQ
RocketMQ报错:MQClientException:no route info of this topic的解决
RocketMQ报错:MQClientException:no route info of this topic的解决
689 0
|
12月前
|
并行计算 算法 Shell
LLM-01 大模型 本地部署运行 ChatGLM2-6B-INT4(6GB) 简单上手 环境配置 单机单卡多卡 2070Super8GBx2 打怪升级!
LLM-01 大模型 本地部署运行 ChatGLM2-6B-INT4(6GB) 简单上手 环境配置 单机单卡多卡 2070Super8GBx2 打怪升级!
194 1
|
12月前
|
移动开发 JavaScript 前端开发
ThreeJs简介
这篇文章介绍了Three.js的基础知识,包括其相对于WebGL的优势以及如何使用Three.js创建基本的3D场景。
551 1
|
存储 边缘计算 安全
未来云计算发展趋势与挑战
随着数字化时代的推进,云计算作为关键基础设施之一,扮演着越来越重要的角色。本文将探讨未来云计算的发展趋势以及面临的挑战,从技术创新、安全性、可持续性等多个角度进行分析,旨在为读者提供对未来云计算发展方向的深入思考。
|
SQL 关系型数据库 MySQL
【MySQL进阶之路 | 基础篇】MySQL之聚合函数与应用
【MySQL进阶之路 | 基础篇】MySQL之聚合函数与应用
【MySQL进阶之路 | 基础篇】MySQL之聚合函数与应用
|
存储 消息中间件 Cloud Native
AutoMQ 生态集成 CubeFS
立方体文件系统(CubeFS)是一个云原生存储解决方案,现为CNCF孵化项目,支持S3、POSIX、HDFS等协议,提供多租户、多AZ部署和跨区域复制等功能,适用于大数据、AI、容器平台等场景。要部署AutoMQ集群,需先准备CubeFS集群,启用对象网关,创建用户并配置S3接口,然后创建Bucket。接着,下载AutoMQ二进制包,使用S3 URL生成器配置并启动集群,确保所有主机在同一网络并配置正确端口。启动时,先启动控制器,再启动Broker节点。注意,部署在私有数据中心时,需考虑SSD的可靠性,可能需要RAID配置。
259 4
|
人工智能 前端开发 小程序
WordPress网站访问慢解决方案(超详细图文教程)
WordPress网站访问慢解决方案(超详细图文教程)
390 0
|
监控 分布式数据库 Hbase
WAL 对写入性能的直接影响
WAL 对写入性能的直接影响
|
存储 消息中间件 监控
死信队列(Dead Letter Queues)
死信队列(Dead Letter Queues)
|
存储 XML JSON
使用Protocol Buffers优化数据传输
使用Protocol Buffers优化数据传输