首页 > 其他分享 >字符串中洛谷B2124判断字符串是否为回文

字符串中洛谷B2124判断字符串是否为回文

时间:2024-09-29 20:19:18浏览次数:8  
标签:中洛谷 count 字符 B2124 循环 str 字符串 回文

d1e14441de6c416e986d4d358374e386.png

 #include<stdio.h>
int main()
{
    char str[80];
    int i,count=0;
    int t=0;
 
    gets(str);//输入
 
    for(i=0;str[i]!='\0';i++)//遇到字符串结束标志'\0'时停止计数
        count++;//统计共有多少个字符
 
    for(i=0;i<count/2;i++)//比较总字符数1/2次
    {
        if(str[i]==str[count-1-i])
            t++;//若相同,就计数一次
    }
    if(i==t)//若累计计数达到字符串长度的一半,就是回文
        printf("yes");
    else
        printf("no");
 
    return 0;
}

以下是这段 C 语言代码的思路:
 
一、整体流程
 
1. 首先定义一个字符数组  str  用来存储输入的字符串,以及一些用于计数的变量  i 、 count  和  t 。
2. 通过  gets(str)  函数获取用户输入的字符串。
3. 利用循环统计输入字符串的长度,即字符个数,存储在  count  中。循环从字符串的第一个字符开始,逐个检查直到遇到字符串结束标志  '\0' 。
4. 接着使用另一个循环来判断输入的字符串是否为回文。这个循环遍历字符串的前一半字符,将每个字符与对应位置的后一半字符进行比较。如果相同,则  t  加一。
5. 最后,根据  t  的值与循环次数  i (也就是字符串长度的一半)是否相等来判断字符串是否为回文。如果相等,说明字符串是回文,输出“yes”;否则输出“no”。
 
二、具体步骤分析
 
1. 输入字符串:
 
- 通过  gets(str)  函数,从用户那里获取一个字符串,并将其存储在字符数组  str  中。
2. 统计字符串长度:
 
- 使用  for(i = 0; str[i]!= '\0'; i++)  循环遍历字符串。只要当前字符不是字符串结束标志  '\0' ,就继续循环,并将  count  加一,最终  count  存储了字符串的长度。
3. 判断是否为回文:
 
- 再使用一个  for(i = 0; i < count / 2; i++)  循环,这个循环只遍历字符串的前一半。对于长度为偶数的字符串,正好遍历到中间两个字符的前一个;对于长度为奇数的字符串,正好遍历到正中间的字符。
- 在这个循环内部,比较  str[i] (字符串前半部分的字符)和  str[count - 1 - i] (字符串后半部分对应位置的字符)。如果两个字符相等,说明在这个位置上字符串是对称的,将  t  加一。
4. 输出结果:
 
- 根据  if(i == t)  判断,如果  t  的值等于循环次数  i (也就是字符串长度的一半),说明字符串的前一半和后一半完全对应相等,即字符串是回文,输出“yes”;否则输出“no”。

标签:中洛谷,count,字符,B2124,循环,str,字符串,回文
From: https://blog.csdn.net/2401_87122037/article/details/142641425

相关文章

  • UNICODE环境下,RichEditCtrl 控件 RTF字符串的读写
    UNICODE编译环境:RTF字符串的显示:如果是CRichEditView,可以直接用SetWindowText,输入的RTF字符串是UNCODE编码。如果是CRichEditCtrl,可以发消息显示,输入的字符串是UNCODE编码intCNoteView::SetRTF(TCHAR*pRtf) { intlen=_tcslen(pRtf); //::SendMessage(m_hWndREdit,EM_SE......
  • 使用异或操作实现字符串加密与解密
    异或加密是一种简单而有效的加密技术,它的特点是同一密钥可用于加密和解密,以下是一个例子:usingSystem;usingSystem.Text;publicstaticclassEncryption{///<summary>///bytes数据通过encryptCode进行异或(加密|解密)///将传入的bytes作为返回值,不再额外分......
  • 大json字符串处理
    背景:当从API获取数据或与其他系统交换信息时。有时json字符串可能会非常庞大,以至于读取到内存中会导致内存溢出或者性能问题流式处理:如果JSON字符串过大,不适合一次性加载到内存中,可以考虑使用流式处理。例如,使用Jackson库的JsonParser,可以逐行解析JSON,从而避免一次性加载整个字......
  • 【C语言】字符函数和字符串函数(1)
    文章目录一、字符分类函数二、字符转换函数三、strlen的使用和模拟实现四、strcpy的使用和模拟实现五、strcat的使用和模拟实现六、strcmp的使用和模拟实现一、字符分类函数  C语⾔中有⼀系列的函数是专⻔做字符分类的,也就是⼀个字符是属于什么类型的字符的,这些......
  • java字符串连接和运算符优先级
    源代码:publicclassEnumTest{publicstaticvoidmain(String[]args){intx=100;inty=200;System.out.println("x+y="+y+x+y);System.out.println(x+y+"=x+y");}}程序输出:x+y=200100200300=x......
  • 字符函数和字符串函数
    字符函数和字符串函数字符分类函数大家知道字符是分为很多种类型的就比如说’a’‘1’'A’等等,所以我们需要一种函数来完成字符函数的分类这就是字符分类函数函数需要包含头文件<ctype.h>函数的运行规则是:如果符合下列参数就返回真inscntrl(控制任何字节)isspace(空白......
  • 字符串的增删改查
    一.增:增加元素方法一:使用"+"/"*"语法格式:"字符串1"+字符串"2"*数值... 注:以下例子以两个元素进行举例,当使用"+"对两个字符串进行拼接时,注意:此时拼接出的新字符串中间是没有空格的.字符串与字符串直接没有"*"这个方法a='李二牛'b='王艳兵'c=a+bprint(c)......
  • Day4 C++(运算符重载,模板与容器)(友元函数,运算符重载,赋值运算符,string字符串类,模板)
    1.友元friend1.1概念(掌握)定义:类实现了数据的隐藏与封装,类的数据成员一般定义为私有成员,仅能通过类的成员函数才能读写。如果数据成员定义为公共的,则又破坏了封装性。但是某些情况下,需要频繁读写类的成员,特别是在对某些成员函数多次调用时,由于参数传递、类型检查和安全......
  • APP逆向实战:喜马拉雅(OLLVM混淆,字符串加密)
    喜马拉雅抓包:POST/mobile/login/pwd/v3HTTP/1.1Cookie:1&_device=android&fcecf4c4-5ddc-30e3-86b1-6e675f92bfd0&6.6.99;channel=and-f5;impl=com.ximalaya.ting.android;osversion=29;fp=009527657x2022q22564v0500000000000000000000000000000000000000;devic......
  • sha256sum文件哈希值和直接哈希字符串的哈希值不一样
    例如在文件test.txt里写入test没有换行。然后sha256sumtest.txt出来的结果是f2ca1bb6c7e907d06dafe4687e579fce76b37e4e93b7605022da52e6ccc26fd2test.txt但是在这个网站上http://encode.chahuo.com/输入test,然后以sha256方式哈希得到的结果是9f86d081884c7d659a2......