【蓝桥杯】不同子串
【摘要】 问题描述 小明对数位中含有 2、0、1、9 的数字很感兴趣(不包括前导 0),在 1 到 40 中这样的数包括 1、2、9、10 至 32、39 和 40,共 28 个,他们的和是 574。请问,在 1 到 n 中,所有这样的数的和是多少?输入格式 输入一行包含两个整数 n。输出格式 输出一行,包含一个整数,表示满足条件的数的和。样例输入40样例输出574评测用例规模与约定 对于 ...
问题描述
小明对数位中含有 2、0、1、9 的数字很感兴趣(不包括前导 0),在 1 到
40 中这样的数包括 1、2、9、10 至 32、39 和 40,共 28 个,他们的和是 574。请问,在 1 到 n 中,所有这样的数的和是多少?
输入格式
输入一行包含两个整数 n。
输出格式
输出一行,包含一个整数,表示满足条件的数的和。
样例输入
40
样例输出
574
评测用例规模与约定
对于 20% 的评测用例,1 ≤ n ≤ 10。 对于 50% 的评测用例,1 ≤ n ≤ 100。对于 80% 的评测用例,1 ≤ n ≤ 1000。对于所有评测用例,1 ≤ n ≤ 10000。
package 省题2019;
import java.util.HashMap;
import java.util.Map;
public class 不同子串 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//给定字符串
String str = "0100110001010001";
//求出字符串的长度
int length = str.length();
//使用map集合去重
Map<String,Integer> map = new HashMap<String,Integer>();
//利用循环截取字符串方式
for(int i = 0; i <= length; i++) {
for(int j = i; j <= length; j++) {
String ss = str.substring(i,j);
map.put(ss,0);
}
}
//这里要减一,因为(i = 0 ,j = 0)(i = j = length)时,
//截取的字符串为"",不是0也不是1
System.out.println(map.size() - 1);
}
}
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)