难度:easy
Java:
class Solution {
public String[] findOcurrences(String text, String first, String second) {
String[] stext = text.split(" ");
List<String> third = new ArrayList<>();
for (int i = 0; i < stext.length - 2; i++) {
//注意equals方法和==的区别
// if(stext[i] == first && stext[i + 1] == second) {
// third.add(stext[i + 2]);
// }
if (stext[i].equals(first) && stext[i + 1].equals(second)) {
third.add(stext[i + 2]);
}
}
String[] ans = new String[third.size()];
for(int i = 0; i < third.size(); i++) {
ans[i] = third.get(i);
}
return ans;
//也可以过
// return third.toArray(new String[third.size()]);
}
}
复杂度分析:
- 时间复杂度:O(n)
- 空间复杂度:O(n)
需要注意equals方法和==的区别:
- equals是判断两个变量或者实例指向同一个内存空间的值是不是相同;
- 而==是判断两个变量或者实例是不是指向同一个内存空间;
- 八大基本数据类型:Byte,short,int,long,double,folat,boolean,char 数据变量中直接存储值;可以使用==直接比较值;
- 像String类型和Integer等属于引用类型,变量中存储的是地址,对应的地址存储数据,若比较大小则需要equals方法;