21xrx.com
2024-11-22 08:10:48 Friday
登录
文章检索 我的文章 写文章
C++ 判断字符串是否为回文串
2023-06-27 01:52:06 深夜i     --     --
C++ 字符串 回文串 判断

在计算机编程中,回文串是常见的一个问题。回文串是指从左到右和从右到左遍历时字符序列完全相同的字符串。例如,"racecar"和"noon"都是回文串。在C++中,我们可以很容易地编写一个程序来判断一个字符串是否为回文串。

我们可以使用两个指针i和j,分别从字符串的开头和结尾开始遍历。当它们指向的字符相同时,我们将它们向中间移动。如果它们指向的字符不同,那么这个字符串就不是回文串。

下面是一个判断字符串是否为回文串的函数:


bool isPalindrome(string str) {

  int i = 0;

  int j = str.length() - 1;

  while (i < j) {

    if (str[i] != str[j])

      return false;

    

    i++;

    j--;

  }

  return true;

}

在这个函数中,我们首先初始化i和j的值。i指向字符串的第一个字符,j指向字符串的最后一个字符。我们使用while循环来遍历字符串。在每个循环迭代中,我们检查i和j指向的字符是否相同。如果相同,我们将i和j分别向中间移动一位。如果它们不同,我们可以判定这个字符串不是回文串,返回false。如果在循环结束时没有返回false,那么这个字符串就是回文串,我们返回true。

最后,我们可以在主函数中调用这个函数来判断一个字符串是否是回文串:


int main() {

  string str = "racecar";

  if (isPalindrome(str))

    cout << str << " is a palindrome" << endl;

   else

    cout << str << " is not a palindrome" << endl;

  

  return 0;

}

在这个例子中,我们将字符串"racecar"传递给isPalindrome函数进行判断。由于这个字符串是回文串,所以程序输出"racecar is a palindrome"。

总之,判断字符串是否为回文串是一项有用的技能,在C++中实现也很简单。我们可以使用两个指针来遍历字符串,并比较它们所指向的字符是否相同。如果所有字符都匹配,那么这个字符串就是回文串。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复