c++ - 如何在字符串中搜索 C++

标签 c++ string

我输入了一个字符串类型的句子。

std::string message;
std::getline(std::cin, message);

输入一个句子后,我使用 if 语句将字符串转换为“摩尔斯电码”:

int length = message.length();
for(int i = 0; i < length;i++) //to loop in the message 
{
   if(message[i] == 'A')
       cout << "-.";//and the rest for 'b','c','d'....'z'
}  

我如何获取输入字符串的摩尔斯电码并对其进行解码。例如: 如果在摩尔斯电码中是“.-”,则显示“A”,如果消息中是“-...”,则显示“B”。

最佳答案

以这种方式使用二叉树 - 根为空 (NULL)。 每个 child 都有一个字符“-”“。” . 这样你就可以将摩尔斯电码解码到树中。 现在而不是 NULL 放在最后把你应该在最后得到的字符。 树应该是这样的:

                                root
                               /    \
                              '-'    '.'
                                \
                                 '.'
                                    \
                                     'A'

等 现在当 n = 树的大小时,您可以在 O(lg n) 中找到字符。

关于c++ - 如何在字符串中搜索 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11916550/

相关文章:

java - 使用 Java HashSet 的两个字符串的交集

c++ - 可变参数模板且没有值

c++ - 如何迭代 boost::fusion 关联结构并以通用方式访问键

字符串拆分中的 Java 错误

javascript - 如果字符串匹配正则表达式则替换,如果不匹配则添加变量

python - 将字符串句子列表转换为单词

python - 用于将字符串转换为 Snake_case/CamelCase 的 Julia 实现

c++ - 如何查询当前线程的 COM 单元状态

java - 使用 JNI 将图像从 Java 传递到 C++

.net - 在 .NET 中使用 Hashtable 将指针映射到不可变对象(immutable对象)