|
1
4
这里有一些可以帮助您的python“psudocode”
下面是转换代码的大致指南
|
|
|
2
5
您当前的方法的问题是,它不考虑*可以匹配的所有可能的子字符串。例如,samepattern(“a b a b a b a b a b a b”,“a*b”)应返回true;除了字符串的第一个字母和最后一个字母外,*可以匹配所有字母,但您的代码假定,由于以下字母是b,*匹配空字符串。 我建议在寻找匹配项时将samepattern视为“消费”它的两个输入字符串。在每个步骤中,Samepattern只需查看每个字符串的第一个字符就可以决定是否匹配 在第一个字符 可以,如果可以,则进行递归调用以检查字符串的其余部分。诀窍是知道当您在模式字符串中达到*时要做什么,因为它可能用于或不用于匹配s1中的第一个字符。您不需要查看字符串的其余部分来决定要做什么。 既然这是家庭作业,我就不去想那些发生在你身上的细节了,但希望这能让你走上正确的道路。 |
|
|
3
2
这是用C写的样品溶液。很抱歉,我没有时间发表意见。如果你明天还需要的话,我可以写一些,但我希望你能理解。
|
|
|
4
2
在处理这样的算法时,把问题分成小块在你的头脑中通常是值得的。 因为您是字符串解析,所以需要逐个字符地考虑解决方案。此外,由于您无法控制这些字符串的实际大小,因此在任何给定的时间限制自己只考虑字符串的第一个字符。(嗯-有一个例外) 一旦你确定你要处理的角色需要进一步调查字符串的其余部分, 把它们扔掉 把它们放在身边只会增加复杂性,那么为什么要麻烦呢?(相反,如果字符完全不匹配,您就完成了-对吗?) 当然,这是一个递归字符串,所以您必须有几个条件来控制失败/成功,这些条件处理字符串的整体状态——但这些并不是问题的核心——检查函数顶部字符串的状态,然后继续。 我有一个算法,我挑起(11行代码,加上大括号),我可以张贴如果你想要一个完整的解决方案-但我不确定你的消息,如果你想得到算法,或只是指针。 |
|
Ben · 统计向量中的单词在字符串中出现的频率 1 年前 |
|
|
bear_525 · 从列中删除中间名和首字母,并保存在单独的列中 1 年前 |
|
|
asdfadf · 为什么具有相同内存值的字符串和整数打印方式不同? 1 年前 |
|
|
user764754 · 防止多行原始字符串文字中出现新行字符 1 年前 |
|
|
Bogaso · 从列表中返回与模式匹配的元素 1 年前 |
|
|
Jasco · 如何使用VBA提取两个相似字符之间的字符串中的单词? 1 年前 |