关注
一开始我也是这么想的,然后钻进去出不来了,考完后自己想了下,其实是想的太复杂了,代码如下: import java.util.HashMap;
import java.util.Scanner;
/**
* MPMPCPMCMDEFEGDEHINHKLIN
* 9 7 8
*/
public class Code1_SplitStr {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
sc.close();
if (str == null || str.length() < 1) {
System.out.println(0);
return;
}
// 记录每个字符在str中最后出现的位置
HashMap<Character, Integer> charLastMap = new HashMap<Character, Integer>();
char curChar;
for (int i = 0; i < str.length(); i++) {
curChar = str.charAt(i);
charLastMap.put(curChar, i);
}
// 按照逻辑,分段过程是,每次观察到str的i位置的字符curChar,就需要观察到curChar字符组后出现的位置,
// 那么这之间的部分,必须是同一个段内,然后继续遍历观察,发现新的字符,这时候对于段尾,可能发生变化,即:
// segEnd = charLastMap.get(curChar) > segEnd ? charLastMap.get(curChar) : segEnd;
int segStart = 0;
int segEnd = -1;
StringBuffer sb = new StringBuffer();
while (segEnd != str.length() - 1) {
for (int i = 0; i < str.length(); i++) {
segStart = segEnd + 1;
curChar = str.charAt(i);
segEnd = charLastMap.get(curChar);
while (i < segEnd) {
curChar = str.charAt(++i);
segEnd = charLastMap.get(curChar) > segEnd ? charLastMap.get(curChar) : segEnd;
}
sb.append(" " + (segEnd - segStart + 1));
}
}
System.out.println(sb.toString().substring(1));
}
}
查看原帖
点赞 1
相关推荐
03-24 23:51
门头沟学院 测试开发 点赞 评论 收藏
分享
04-15 17:16
安徽工业大学 IT技术支持 在下uptown:本质上是因为我们的苦难教育,从小只引导闷头学,上台说个话腿都得哆嗦,看见女孩心跳的喘不过来气,到了大学里没人告诉你怎么转变心态
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 你知道最慷慨和最抠的公司分别是 #
3662次浏览 38人参与
# 哪些AI项目值得做? #
2374次浏览 84人参与
# 华泰星战营,提前锁定校招offer #
8801次浏览 316人参与
# 实习时最怕听到的一句话 #
2684次浏览 47人参与
# 简历上如何体现你的“AI”能力? #
2718次浏览 53人参与
# 没有面试的日子里,你在做什么 #
3507次浏览 55人参与
# 怎么给家人解释你的工作? #
57073次浏览 217人参与
# 你简历上最心虚的一句话 #
8176次浏览 49人参与
# 你总挂在第__面? #
1475次浏览 22人参与
# 找不到大厂实习可以去小厂吗? #
2761次浏览 30人参与
# 荣耀笔试 #
83709次浏览 410人参与
# 实习生如何通过转正 #
138107次浏览 1493人参与
# 国央企笔面经互助 #
196912次浏览 1235人参与
# 考公VS就业,你怎么选? #
100725次浏览 534人参与
# 卷__卷不过你们,只能卷__了 #
60901次浏览 767人参与
# 你今年的保底offer是哪家 #
187891次浏览 760人参与
# 大城市找工作会更容易吗 #
66887次浏览 400人参与
# 哪些公司对双非友好 #
231143次浏览 1248人参与
# 快消秋招求职进展汇总 #
11709次浏览 43人参与
# 你找实习最大的坎坷是什么 #
322148次浏览 2466人参与
# 哪些公司校招卡第一学历 #
256698次浏览 876人参与
查看7道真题和解析