检查字符串是否包含连续字母,并且每个字母只出现一次


简介

在 C++ 中,字符串是一系列字符,这些字符可能是不同的,也可能是重复的。连续字符是指同时出现的字符,其位置差为 1。例如,字符 a 和 b 是连续的,因为它们一起出现。但是,字符 m 和 o 的位置差为 2,因此它们在本质上是非连续的。

在这篇文章中,我们将开发一个代码,它以字符串作为输入,如果字符串中的所有字符都是连续的,则显示 true。让我们看下面的例子来更好地理解这个主题。

示例

示例 1 - str - “pqsr”

输出 - 是

在这篇文章中,我们将开发一个代码来从字符串中提取当前字符和前一个字符。然后进一步检查,如果字符的位置差值不等于 1,则返回布尔值 false。

语法

sort()

sort(str.begin(), str.end())

C++ 中的 sort() 方法用于按升序排列字符串中的字符,从开头到结尾。

参数

str - 输入字符串

end - 字符串中出现的最后一个字符

begin - 字符串中出现的第一个字符

length()

C++ 中的 length() 方法用于计算字符串中字符的数量。

str.length()

参数

str - 输入字符串

算法

  • 接受输入字符串 str 作为输入。

  • 使用 sort() 方法对输入字符串进行排序。

  • 使用 for 循环 i 对字符串进行迭代。

  • 使用 length() 方法计算字符串的长度并将其存储在 len 变量中。

  • 对字符串执行 for 循环迭代 i。

  • 每次都提取第 i 个位置的字符 ch 和第 i-1 个位置的字符 ch1。

  • 如果这两个字符之间的差值不等于 1,则返回布尔值 false。

  • 如果所有对应的字符都满足要求的条件,则返回布尔值 true。

  • 此值以布尔标志 res 的形式返回。如果其值为 true,则打印字符串包含连续字符。

示例

以下 C++ 代码片段用于将示例字符串作为输入,并计算字符串中出现的所有字符在本质上是否连续:

//including the required libraries 
#include <bits/stdc++.h>
using namespace std;
 
//function to check of characters consecutive
bool validateString(string str) {
 
   //length of the string
   int len = str.length();
 
   // sorting the given string
   sort(str.begin(), str.end());
 
   // Iterate for every index and
   // check for the condition
   for (int i = 1; i < len; i++) {
 
      //extract characters at the required pos 
      char ch = str[i];
      char ch1 = str[i-1];
      if (ch-ch1 != 1)
      //in case characters are not consecutive
         return false;
   }
   //if condition holds
    return true;
}
 
//calling the main method
int main() {
 
   // 1st example
   string str = "mpon";
   cout << "Input String : " <<str << " \n";
   bool res = validateString(str);
   if (res)
       cout << "Yes, the string contains only consecutive characters\n";
   else
       cout << "No, the string doesn't contain only consecutive characters.\n";
   return 0;
}

输出

Input String − mpon 
Yes, the string contains only consecutive characters

结论

字符串中持续出现的字符是同时出现的字母。这可以通过对字符串从头到尾进行排序来实现。可以很容易地比较连续位置的字符,并检查它们相差多少位置。这可以用来获取字符串是否是连续的信息。

更新于:2023年7月31日

1K+ 次查看

启动您的职业生涯

通过完成课程获得认证

开始
广告