UVa 401 Palindromes

简介:

题目大意:Palindrome的定义是,一个字符串从左向右和从右向左读是一样的;Mirrored string的定义是,一个字符串左右对称;Mirrored palindrome就是既palindrome又mirrored的字符串。对称的关系表题目中已给出。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#include<stdio.h>
#include<string.h>
const  char  one[]= "ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789" ;
const  char  two[]= "A   3 HIL JM O   2TUVWXY51SE Z 8 " ;
const  long  len=35;
bool  Palindrome( const  char  *s)
{
     long  begin=0,end= strlen (s)-1;
     while (begin<=end)
     {
        if (s[begin]==s[end])
        {
           begin++;
           end--;
        }
        else
          return  false ;
     }
     return  true ;
}
long  pos( char  ch)
{
     for ( long  i=0;i<len;i++)
       if (one[i]==ch)
         return  i;
     return  len;
}
bool  Mirror( const  char  *s)
{
     long  begin=0,end= strlen (s)-1;
     while (begin<=end)
     {
        long  tmp=pos(s[begin]);
        if (s[end]==two[tmp])
        {
           begin++;
           end--;
        }
        else
          return  false ;
     }
     return  true ;
}
int  main()
{
     char  str[1000];
     while ( gets (str)!=0)
     {
        bool  a= false ,b= false ;
        a=Palindrome(str);
        b=Mirror(str);
        if (a&&b)
          printf ( "%s -- is a mirrored palindrome.\n" ,str);
        else  if (a)
          printf ( "%s -- is a regular palindrome.\n" ,str);
        else  if (b)
          printf ( "%s -- is a mirrored string.\n" ,str);
        else
          printf ( "%s -- is not a palindrome.\n" ,str);
        putchar ( '\n' );
     }
return  0;
}

  


目录
相关文章
|
缓存 Ubuntu Linux
Vim编辑器入门指南:安装、基本操作和高级技巧详解 | 适用于Linux系统
Vim编辑器入门指南:安装、基本操作和高级技巧详解 | 适用于Linux系统
2423 0
|
移动开发 算法 调度
【贪心算法】一文让你学会“贪心”(贪心算法详解及经典案例)
贪心算法是一种非常常见的算法,它的简单和高效性使其在实际应用中被广泛使用。 贪心算法的核心思想是在每一步都采取当前状态下最优的选择,而不考虑未来可能产生的影响。虽然贪心算法不能保证总是得到最优解,但在很多情况下,它可以获得很好的结果。 本篇文章将介绍贪心算法的基本概念和一些经典应用,以及如何通过贪心算法来解决一些实际问题。希望通过本文的阅读,读者可以对贪心算法有更加深刻的理解,并能够在实际问题中应用贪心算法来得到更好的解决方案。 让我们暴打贪心算法吧!
6301 0
|
前端开发 JavaScript 物联网
JavaScript使用Modbus协议实现RTU设备连云
在阿里云物联网平台下发物模型属性设置数据,HaaS600Kit 接收并解析云端数据后控制 Modbus 继电器设备进行开关动作。
JavaScript使用Modbus协议实现RTU设备连云
|
7月前
|
API 人机交互 Android开发
鸿蒙特效教程09-深入学习animateTo动画
本教程将带领大家从零开始,一步步讲解如何讲解 animateTo 动画,并实现按钮交互效果,使新手也能轻松掌握。
240 6
鸿蒙特效教程09-深入学习animateTo动画
|
11月前
|
人工智能 安全 测试技术
探索AI在软件开发中的应用:提升开发效率与质量
【10月更文挑战第31天】在快速发展的科技时代,人工智能(AI)已成为软件开发领域的重要组成部分。本文探讨了AI在代码生成、缺陷预测、自动化测试、性能优化和CI/CD中的应用,以及这些应用如何提升开发效率和产品质量。同时,文章也讨论了数据隐私、模型可解释性和技术更新等挑战。
|
传感器 监控 自动驾驶
|
存储 人工智能 自然语言处理
新手指南:微软ai助手Copilot国内如何使用?
微软 Copilot 是一款强大的 AI 助手,掌握一些技巧可以让你更好地利用它,提高效率和创造力,让你的工作和生活更加精彩!
10234 11
|
SQL NoSQL 数据库
Flutter Hive NoSql 数据库使用指南
本文将会写一个 Hive CURD 的例子,详细介绍 Hive 这个轻量级的 Flutter 离线数据库的使用方法,包括 Hive 在 Flutter 开发中的重要性、Hive 与 SQLite 的比较等,帮助开发者快速上手 Hive 数据库。
364 6
Flutter Hive NoSql 数据库使用指南
|
NoSQL 程序员 C语言
探秘Segmentation Fault错误:程序猿的噩梦
探秘Segmentation Fault错误:程序猿的噩梦
2341 0