[面试题]找出字符串在集合中的子串数量
题目
给定字符串,和一个集合,集合中的串的长度都不大于三,找出字符串包含在集合中的子串数量。
题解
注意题目的特别信息,由于集合中串的长度不大于三,所以可以以目标串的每个位置为开始,分别截取长度为1,2,3的子串,看看子串是否在集合中。
另外,熟悉str.substring(beg,end)
的使用。
代码
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
public class Main {
public int subStrCnt(String str, Set<String> set) {
int cnt = 0;
for (int i = 0; i < str.length(); ++i) {
for (int len = 1; len <= 3 && i + len <= str.length(); ++len) {
String subStr = str.substring(i, i + len);
if (set.contains(subStr)) {
cnt++;
}
}
}
return cnt;
}
}
posted on 2020-05-14 17:50 coding_gaga 阅读(343) 评论(0) 编辑 收藏 举报
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步