【发布时间】:2015-11-13 15:11:28
【问题描述】:
给定两个字符串str1 和str2 作为输入,我需要确定str2 是否出现在str1 中。
例子:
- 输入#1:
occurs("JavaLadders","Java") - 输出#1:
true - 输入#2:
occurs("Problem Panel","Panes") - 输出#2:
false
在我的函数中,我使用了 2 个字符串。在 for 循环中,我正在检查每个字符位置,str1 中的该字符是否与str2 中的匹配。如果不匹配,我制作了p=0 和count=0。如果匹配,我会增加我的count 和p。
我还检查了count 是否等于我的str2.length()。如果是,我退出循环并返回true,否则我返回false。
public boolean occurs(String str1, String str2)
{
int l1=str1.length();
int l2=str2.length();
int p=0;
int count=0;
int j=0;
for(;j<l1;j++)
{
char ch1=str1.charAt(j);
char ch2=str2.charAt(p);
if(ch1==ch2)
{
p++;
count++;
}
else if(count==l2)
{
break;
}
else
{
p=0;
count=0;
}
}
if(l2==count)
return true;
else
return false;
}
但是这个测试用例失败了:
- 输入:
occurs('Trisect Institute', 'Trisect') - 输出:
null - 预期输出:
true
我做错了什么?
【问题讨论】:
-
是否有任何限制禁止您使用
str1.contains(str2)? -
@dounyy 是的,除了 concat 和我使用的函数,我不能使用任何其他函数。
标签: java if-statement for-loop