C++实现strpbrk()函数
strpbrk()是C++ STL中的字符串函数,它接受两个字符串,查找字符串1中字符串2中任何字符的第一个出现位置。如果有字符匹配,该函数返回指向字符串1中与字符串2匹配的字符的指针,否则返回NULL。
语法:
示例:
输出
在C++中实现strpbrk()函数的程序
- 给定两个字符数组“str1”和“str2”。
- 使用嵌套的for循环,比较str1和str2。
- 如果str2中的任何字符存在于str1中,则将str1的第i个索引存储在变量pos中并退出循环。
- 如果pos等于-1,表示在两个字符串中没有字符已匹配,则打印未找到字符。
- 否则打印该字符及其在str1中的位置。
示例:
输出
时间复杂度 : O(N 2 )
辅助空间复杂度 : O(1)
高效方法 : 可以通过在C++中使用set来优化给定问题。按照以下步骤解决此问题:
- 给定两个字符数组“str1”和“str2”。
- 将str2的所有字符插入集合中。
- 遍历str1并检查。
- 如果str2中的任何字符存在于str1中,则将str1的第i个索引存储在变量pos中并退出循环。
- 如果pos等于-1,表示在两个字符串中没有字符已匹配,则打印未找到字符。
- 否则打印该字符及其在str1中的位置。
示例:
输出
时间复杂度:O(max(n, m)*log(m))
辅助空间:O(m)