码迷,mamicode.com
首页 > 其他好文 > 详细

[面试题]找出字符串在集合中的子串数量(字符串)

时间:2020-05-14 19:09:46      阅读:75      评论:0      收藏:0      [点我收藏+]

标签:code   contain   注意   sub   port   信息   ret   ash   int   

题目

给定字符串,和一个集合,集合中的串的长度都不大于三,找出字符串包含在集合中的子串数量。

题解

注意题目的特别信息,由于集合中串的长度不大于三,所以可以以目标串的每个位置为开始,分别截取长度为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;
	}
}

[面试题]找出字符串在集合中的子串数量(字符串)

标签:code   contain   注意   sub   port   信息   ret   ash   int   

原文地址:https://www.cnblogs.com/coding-gaga/p/12890310.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!