C++程序 打印字符串每个单词的第一个字母
给定一个包含小写英文字母和空格的字符串 str ,它可能包含多个空格。获取每个单词的第一个字母并将结果作为字符串返回。结果不应包含任何空格。
例子:
输入: str = “geeks for geeks”
输出: gfg
输入: str = “happy coding”
输出: hc
思路是遍历字符串 str 的每个字符并维护一个布尔变量,初始设置为 true。 每当遇到空格时设置布尔变量为 true。 如果遇到空格之外的任何字符,检查布尔变量是否为 true,在 此情况下将字符复制到输出字符串并将布尔变量设置为 false。 如果布尔变量设置为假,则不进行任何操作。
算法:
1.遍历字符串 str。 并将变量v初始化为 true。
2.如果 str[i] == ‘ ‘ ,将v设置为 true。
3.如果 str[i] != ‘ ‘, 检查v是否为 true。
a)如果是,将 str[i] 复制到输出字符串并设置v为 false。
b)如果是假,则不进行任何操作。
输出
输出:
Time Complexity: ** O(n)
space complexity: ** O(1),如果考虑存储结果字符串的空间,则为O(n)。
另一种方法:
在此方法中,我们将首先基于空格拆分输入字符串。可以使用正则表达式匹配字符串中的空格。拆分字符串存储在字符串数组中。然后,我们可以在结果中简单地添加每个分隔字符串的第一个字符。
输出
方法:使用递归
产量
时间复杂度: O(n)
辅助空间: O(n)