给出第一个词 first
和第二个词 second
,考虑在某些文本 text
中可能以 "first second third"
形式出现的情况,其中 second
紧随 first
出现,third
紧随 second
出现。
对于每种这样的情况,将第三个词 "third"
添加到答案中,并返回答案。
示例 1:
输入:text = “alice is a good girl she is a good student”, first = “a”,
second = “good”
输出:[“girl”,“student”]
示例 2:
输入:text = “we will we will rock you”, first = “we”, second = “will”
输出:[“we”,“rock”]
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/occurrences-after-bigram
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解法
public class Solution {
public String[] findOcurrences(String text, String first, String second) {
String[] s = text.split(" ");
String str = "";
for (int i = 0; i < s.length - 2; i++) {
if (s[i].equals(first) && s[i + 1].equals(second)) {
str += s[i + 2] + " ";
}
}
return str.split(" ");
}
}
不过这样写当没有符合条件的字符串时输出会多一个引号,改用list来保存:
class Solution {
public String[] findOcurrences(String text, String first, String second) {
String[] s = text.split(" ");
List<String> list = new ArrayList();
for (int i = 0; i < s.length - 2; i++) {
if (s[i].equals(first)&&s[i+1].equals(second)){
list.add(s[i+2]);
}
}
String[] strings=new String[list.size()];
for (int i = 0; i < list.size(); i++) {
strings[i]=list.get(i);
}
return strings;
}
}
思路
- 将text转化为字符串数组
- 遍历找出所有连续的first和second,保存third