1 查找「sdddrtkjsfkkkasjdddj」字符串中,出现次数最多的字符和次数。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
</body>
<script>
var str = "sdddrtkjsfkkkasjdddj";
// 使用对象记录字符出现的次数,键为各个字符,值为字符出现的次数
var obj = {};
// 循环str,判断每个元素出现的次数
for (var i = 0; i < str.length; i++) {
var char = str.charAt(i);
if (obj[char]) {
obj[char]++//次数加1
} else {
obj[char] = 1;//若第一次出现,次数记为1
}
}
console.log(obj); //输出的是完整的对象,记录着每一个字符及其出现的次数
//遍历对象判断出现最多次的次数
var max = 0;
for (var key in obj) {
if (max < obj[key])
max = obj[key];
}
//判断出现最多次的字符
for (var key in obj) {
if (max == obj[key]) {
console.log('次数:' + max);
console.log('最多次字符:' +key);
}
}
</script>
</html>
key value则是表示键值对的结构如{name:"张三"},此处,name就是key,"张三"就是value.
综上,for in 和key value 一起中就是遍历一个集合中的key 和value值
2 要求:执行一个删除语句,当 Name 列上有相同时,只保留 ID 这列上值小的
表名 team
ID | Name |
---|---|
1 | a |
2 | b |
3 | b |
4 | a |
5 | c |
6 | c |
例如:删除后的结果应如下:
ID | Name |
---|---|
1 | a |
2 | b |
5 | c |
DROP TABLE IF EXISTS team; CREATE TABLE `team` ( `id` int(11) DEFAULT NULL, `name` varchar(255) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- 要求:执行一个删除语句,当 Name 列上有相同时,只保留 ID 这列上值小的 INSERT team(id,name) VALUES (1,'a'); INSERT team(id,name) VALUES (2,'b'); INSERT team(id,name) VALUES (3,'b'); INSERT team(id,name) VALUES (4,'a'); INSERT team(id,name) VALUES (5,'c'); INSERT team(id,name) VALUES (6,'c'); DELETE FROM team WHERE id NOT IN (SELECT a.id FROM (SELECT MIN(id) AS id FROM team GROUP BY name ) a)
3 判断 101-200 之间有多少个素数,并输出所有素数。
package demo1; public class Sushu { // 判断 101-200 之间有多少个素数,并输出所有素数。 public static void main(String[] args) { int count = 0; for (int i = 101; i <= 200; i++) { int j; for (j = 2; j < i; j++) { // 如果j能被i整出在跳出循环 if (i % j == 0) { break; } } // 判断循环是否提前跳出,如果j<i说明在2~j之间,i有可整除的数 if (j >= i) { count++; System.out.println(i); } } System.out.println(count); } }