C++程序检查字符串是否完全由字母组成
假设我们有一个包含n个小写字母的字符串S。如果一个字符串遵循以下规则,则称其为严格字母顺序的字符串:
创建一个空字符串T。
然后执行接下来的n次步骤:
在第i步,取拉丁字母表中的第i个小写字母c,将其插入到字符串T的左侧或右侧。
我们需要检查S是否为严格字母顺序的字符串。
问题类别
为了解决这个问题,我们需要操作字符串。在编程语言中,字符串是一系列字符,存储在特定的数组类型数据中。许多语言将字符串指定为一种特定的数据类型(例如,Java、C++、Python);而其他一些语言则将字符串指定为字符数组(例如,C)。字符串在编程中非常重要,因为它们通常是各种应用程序的首选数据类型,并且用作输入和输出的数据类型。有各种字符串操作,例如字符串搜索、子字符串生成、字符串剥离操作、字符串转换操作、字符串替换操作、字符串反转操作等等。查看下面的链接,了解如何在C/C++中使用字符串。
https://tutorialspoint.com/cplusplus/cpp_strings.htm
https://tutorialspoint.com/cprogramming/c_strings.htm
因此,如果我们问题的输入类似于S = "ihfcbadeg",则输出将为True。
步骤
为了解决这个问题,我们将遵循以下步骤:
len := size of S for initialize i := len, when i >= 1, update (decrease i by 1), do: if S[l] is the i th character, then: (increase l by 1) otherwise when S[r] is the ith character, then: (decrease r by 1) Otherwise Come out from the loop if i is same as 0, then: return true Otherwise return false
示例
让我们看看下面的实现,以便更好地理解:
#include <bits/stdc++.h> using namespace std; bool solve(string S){ int len = S.size(), l = 0, r = len - 1, i; for (i = len; i >= 1; i--){ if (S[l] - 'a' + 1 == i) l++; else if (S[r] - 'a' + 1 == i) r--; else break; } if (i == 0) return true; else return false; } int main(){ string S = "ihfcbadeg"; cout << solve(S) << endl; }
输入
"ihfcbadeg"
输出
1
广告