【字符串处理算法】回文判断的算法设计及C代码实现
时间:2025-11-05 12:42:21 出处:IT科技类资讯阅读(143)
一、字符需求描述
输入一个字符串,串处编写程序判断这个字符串是理算否是回文串。
为了便于说明,文判设定输入的断的代码字符串分为中文字符串和非中文字符串两种。其中,算法设计实现中文字符串中仅包含中文字符,字符非中文字符串中不包含中文字符。串处
所谓回文串,理算是文判指正读和反读都一样的字符串。下面举几个例子予以说明:
1.“level”是断的代码一个非中文字符的回文串,因为正读和反读都是算法设计实现“level”。
2.“Good”不是字符一个非中文字符的回文串。
3.“我爱我”是云服务器串处一个中文字符的回文串,因为正读和反读都是理算“我爱我”。
4.“我爱你”不是一个中文字符的回文串。

二、算法设计
对于非中文字符的回文串的判断比较简单,我们只要以字符串的中间为原点,比较前后对应的字符是否相等就可以了;但对于中文字符的回文串的判断要复杂一点,因为一个中文字符占两个字节,我们不能采用非中文字符的回文串的判断方法,而是应该先单独获取每个中文字符,然后再比较一前一后两个字符是高防服务器否相等。
程序的总体流程如图1所示。

图1 程序的总体流程
三、特殊流程考虑
在编写程序的过程中,我们要对输入的字符串的长度及格式多做考虑,如:
1.如果输入的字符串中只有一个字符,那么程序直接返回,不执行后续流程,因为回文串中至少有两个及以上的字符。
2.如果输入的中文串中含有非中文字符,或者是输入的非中文串中含有中文字符,那么程序直接返回,不执行后续流程。
四、程序代码
/企商汇
分享到:
温馨提示:以上内容和图片整理于网络,仅供参考,希望对您有帮助!如有侵权行为请联系删除!
猜你喜欢
- OpenVPN是一个用于创建虚拟专用网络加密通道的软件包,允许创建的VPN使用公开密钥、数字证书、或者用户名/密码来进行身份验证。OpenVPN能在Solaris、Linux、OpenBSD、FreeBSD、NetBSD、Mac OS X与Windows 2000/XP/Vista/7以及Android和iOS上运行,并包含了许多安全性的功能。配置OpenVPN 2.0的第一步是建立一个PKI(public key infrastructure 公钥基础设施)。PKI包括:服务端和每个客户端都有一个证书(也称做公钥)和私钥首先,我们必须安装OpenVPN软件。在Ubuntu 15.04和其它带有‘apt’包管理器的Unix系统中,可以通过如下命令安装:复制代码代码如下:注意: 所有接下来的命令要以超级用户权限执行,如在使用sudo -i命令后执行,或者你可以使用sudo -E作为接下来所有命令的前缀。开始之前,我们需要拷贝“easy-rsa”到openvpn文件夹。然后进入到该目录复制代码代码如下:第三,我们需要加载环境变量,这些变量已经在前面一步中编辑好了。生成密钥的最后一步准备工作是清空旧的证书和密钥,以及生成新密钥的序列号和索引文件。可以通过以下命令完成。复制代码代码如下:在对话中,我们可以看到默认的变量,这些变量是我们先前在“vars”中指定的。我们可以检查一下,如有必要进行编辑,然后按回车几次。对话如下Generating a 2048 bit RSA private key复制代码代码如下:该命令的对话如下:Generating a 2048 bit RSA private key复制代码代码如下:该命令的输出样例如下Generating DH parameters, 2048 bit long safe prime, generator 2复制代码代码如下:现在,生成完毕,我们可以移动所有生成的文件到最后的位置中。最后,我们来创建OpenVPN配置文件。让我们从样例中拷贝过来吧:然后编辑我们需要指定密钥的自定义路径一切就绪。在重启OpenVPN后,服务器端配置就完成了。Unix的客户端配置复制代码代码如下:加载环境变量然后创建客户端密钥我们将看到一个与先前关于服务器密钥生成部分的章节描述一样的对话,填入客户端的实际信息。假如需要密码保护密钥,你需要运行另外一个命令,命令如下在此种情况下,在建立VPN连接时,会提示你输入密码。现在,我们需要将以下文件从服务器拷贝到客户端/etc/openvpn/keys/文件夹。服务器文件列表:ca.crt,复制代码代码如下:在此之后,我们需要重启OpenVPN以接受新配置。好了,客户端配置完成。安卓客户端配置复制代码代码如下:所有这些文件我们必须移动我们设备的SD卡上。然后,我们需要安装一个OpenVPN Connect 应用。接下来,配置过程很是简单:打开 OpenVPN 并选择“Import”选项虽然OpenVPN初始配置花费不少时间,但是简易的客户端配置为我们弥补了时间上的损失,也提供了从任何设备连接的能力。此外,OpenVPN提供了一个很高的安全等级,以及从不同地方连接的能力,包括位于NAT后面的客户端。因此,OpenVPN可以同时在家和企业中使用。
- 15个躺着就能学编程的游戏网站介绍
- .NET对象清理:垃圾回收和资源清理
- 9个非常实用的网络调试命令,你会用几个呢?
- 我们知道,windows下有很多截图的软件和插件,那么在ubuntu系统下我们该怎样截图呢?下面就让小编来告诉你几种简单的方法吧。方法一:1、也许很多朋友都知道,键盘上有printscreen的按键,此按键可以对整个屏幕进行截图,按下printscreen就会弹出保存截图的对话框,然后就可以保存截图了2、另外,按住“alt+printscreen键就可以对当前活动窗口截图了方法二:1、ubuntu自带一个截图软件,中文名字叫截图,在应用程序中可以找到。2、在截图软件里可以设置截图的区域,截图的特效,还有截图的时间延迟。方法三:1、linux下还有一个易用且强大的截图软件叫ksnapshot,可以在软件商店里安装,也可以直接命令行安装:打开终端,首先输入”sudo -i“获得root权限,然后输入”apt-get install ksnapshot“安装此款软件,遇到询问时输入”y“就可以了2、安装完成后就可以在应用程序里找到ksnapshot,打开它,如图,就会自动截图。3、你可以在在ksnapshot菜单里设置截图的方式还有时间延迟注意事项:以上图例都是在ubuntukylin13.10系统下进行的,对于其他版本的系统,就不能确保了哦。相关推荐:linux系统下ubuntu 中截图工具及快捷键设置
- 炸了!技术总监“删库跑路”被判刑两年多
- 在阿里,新人如何快速上手项目管理?
- Java无可匹敌的变身装备,钢铁侠客的绝密味道
- 以惠普电脑怎么补漆教程(简单易学的惠普电脑外壳补漆方法)