关注
package timu;
/**
* @program: test-lrg
* @description: 编程题目
* @author: Arell
* @create: 2019-12-24 09:09
**/
public class Demo01 {
public static void main(String[] args) {
/*作者:Mono_Chrome
链接:https://www.nowcoder.com/discuss/357566
来源:牛客网
给定m个不重复的字符 [a, b, c, d],以及一个长度为n的字符串tbcacbdata,问能否在这个字符串中找到一个长度为m的连续子串,
使得这个子串刚好由上面m个字符组成,顺序无所谓,返回任意满足条件的一个子串的起始位置,未找到返回-1。比如上面这个例子,acbd,3。
这道题是leetcode原题吗?求解题思路*/
//Scanner scanner = new Scanner(System.in);
char[] chars = {'a', 'b', 'c', 'd'};
String s = "gsjkdgabdc";
int m = chars.length;
int n = s.length();
//将字符拼接字符串
StringBuilder charStr = new StringBuilder();
for (int i = 0; i < chars.length; i++) {
charStr.append(chars[i]);
}
//遍历字符串,判断
String[] strArr = s.split("");
int index = 0;
for (int i = 0; i < strArr.length; i++) {
boolean flag = true;
if (charStr.toString().contains(strArr[i]) && i + m <= n ) {
String temp = s.substring(i, i + m);
for (char aChar : chars) {
if (!temp.contains(aChar + "")) {
//只要有不包含的,就false
flag = false;
}
}
}else {
flag = false;
}
if (flag) {
//找到了第一个满足条件的,返回并return
index = i;
System.out.println(index);
return;
} else {
index = -1;
}
}
System.out.println(index);
}
}
查看原帖
1 评论
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 设计人如何选offer #
98197次浏览 687人参与
# 找工作,行业重要还是岗位重要? #
7342次浏览 96人参与
# 五一之后,实习真的很难找吗? #
45097次浏览 320人参与
# 盲审过后你想做什么? #
12524次浏览 113人参与
# 外包能不能当跳板? #
22125次浏览 191人参与
# 领导秒批的请假话术 #
9785次浏览 74人参与
# 考研可以缓解求职焦虑吗 #
20845次浏览 246人参与
# 五一假期,你打算“躺”还是“卷”? #
28311次浏览 416人参与
# 找工作前vs找工作后的心路变化 #
7160次浏览 64人参与
# 硬件人,你被哪些公司给挂了 #
46601次浏览 722人参与
# 面试等了一周没回复,还有戏吗 #
115478次浏览 1074人参与
# 大疆的机械笔试比去年难吗 #
69584次浏览 603人参与
# 应届生薪资多少才合理? #
3076次浏览 24人参与
# 牛友们的论文几号送审 #
27200次浏览 623人参与
# 写简历别走弯路 #
714287次浏览 7850人参与
# 你喜欢工作还是上学 #
37515次浏览 411人参与
# 如果有时光机,你最想去到哪个年纪? #
43254次浏览 766人参与
# 如何缓解入职前的焦虑 #
171889次浏览 1267人参与
# 如果不工作真的会快乐吗 #
101077次浏览 866人参与
# 每人推荐一个小而美的高薪公司 #
72835次浏览 1357人参与