如何检查一个字符串是否包含其字符顺序的第二个字符串?
发布时间:2020-12-15 00:01:24 所属栏目:Java 来源:网络整理
导读:我刚刚开始,我完全迷失了如何做到这一点. 我希望能够检查字符串是否有较小的字符串,如果字符串按顺序包含字符串的字母,则返回true. 我不确定如何确保第二个字符串的字母顺序排列,即使它们之间还有其他字母. 一个例子是“化学”对于字符串“hit”将返回true.
我刚刚开始,我完全迷失了如何做到这一点.
我希望能够检查字符串是否有较小的字符串,如果字符串按顺序包含字符串的字母,则返回true. 我不确定如何确保第二个字符串的字母顺序排列,即使它们之间还有其他字母. 一个例子是“化学”对于字符串“hit”将返回true. 但是对于字符串“him”它会返回false. 任何帮助将不胜感激. 编辑:谢谢,我将“substring”改为字符串.正如我所说,我刚开始并且不知道这意味着别的什么.我非常感谢所有的帮助.它应该让我朝着正确的方向前进. 解决方法
一般的方法是迭代较长字符串的字符(“化学”),始终跟踪较短字符串中的下一个所需字符的索引(“命中” – 先是0,然后一旦找到h,则为1一旦你找到我,然后当你发现你已经完成了).例如:
public static boolean containsSubsequence( final String sequence,final String subsequence) { if (subsequence.isEmpty()) { return true; } int subsequenceIndex = 0; for (int i = 0; i < sequence.length(); ++i) { if (sequence.charAt(i) == subsequence.charAt(subsequenceIndex)) { ++subsequenceIndex; if (subsequenceIndex == subsequence.length()) { return true; } } } return false; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |