题目一:查找sdddrtkjsfkkkasjdddj字符串中,出现次数最多的字符和次数。
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
</body>
<script>
var team = [];
var num = [];
var s = "11111111111111111222223333anfkkkkkkklajjsdkjdskjlksjdlkjfljalk;fjklajljaljlkdajhashlfsjasjnk;jjskljslgkl3";
//数组,排序
var a = s.split("").sort();
//遍历
for (var i = 0; i < s.length; i++) {
var sum = 0;
for (var j = i; j <= s.length; j++) {
if (a[i] == a[j]) {
sum += 1;
} else {
team.push(a[i]);
num.push(sum);
break;
}
}
i = j - 1;
}
//可以解决同时存在相同个数字符的问题
var p = Math.max.apply(Math, num);
function fun(){
for (var o =0; o < num.length; o++) {
if (num[o] == p) {
document.write("字符串出现最多的字符是 '"+team[o]+"',出现的次数为:"+num[o]+"<hr/>");
}
}
}
fun();
</script>
</html>
字符串出现最多的字符是 '1',出现的次数为:17
字符串出现最多的字符是 'j',出现的次数为:17
字符串出现最多的字符是 'k',出现的次数为:17
方法二
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
</body>
<script>
var str = "ssssssdasagdsbdbfdfbfdfdfsdsrrbdddddd";
// 使用对象记录字符出现的次数,键为各个字符,值为字符出现的次数
var obj = {};
for(var i = 0; i < str.length; i++) {
//获得字符
var char = str.charAt(i);
//若对象已有该字符属性,值加1
if(obj[char]) {
obj[char]++;
} else {
//第一次出现该字符,值记为1
obj[char] = 1;
}
//console.log(obj);
}
console.log(obj);
//记录出现最多次数
var max = 0;
for(var key in obj) {
if(obj[key] >= max) {
max = obj[key];
}
}
//打印
for(var key in obj) {
if(obj[key] == max) {
console.log("出现次数最多的字符:" + key);
console.log("出现次数:" + obj[key]);
}
}
</script>
</html>
题目二:要求:执行一个删除语句,当 Name 列上有相同时,只保留 ID 这列上值小的
例如:删除后的结果应如下:
DROP TABLE IF EXISTS t_team;
CREATE TABLE t_team(
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(10) NOT NULL
);
INSERT INTO t_team(name) VALUES('a');
INSERT INTO t_team(name) VALUES('b');
INSERT INTO t_team(name) VALUES('b');
INSERT INTO t_team(name) VALUES('a');
INSERT INTO t_team(name) VALUES('c');
INSERT INTO t_team(name) VALUES('c');
-- 更新数据时,使用了查询,而查询的数据又做了更新的条件,mysql不支持这种方式,所以再加一层封装,且虚拟表要取别名。
DELETE FROM t_team WHERE id NOT IN
(SELECT id FROM
(SELECT MIN(id) AS id FROM t_team GROUP BY name) AS b);
题目三:判断 101-200 之间有多少个素数,并输出所有素数。
public class d20171101 {
public static void main(String[] args) {
D20 a = new D20();
a.fun(101,200);
}
}
class D20 {
public void fun(int i, int j) {
int sum = 0;
for(int k = i; k <= j; k++) {
if(k%2 != 0 && k%3 != 0 && k%5 != 0 && k%7 != 0) {
System.out.println(k);
sum += 1;
}
}
System.out.println(sum);
}
}
public class Tl3 {
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.print(i + "\t");
// 换行,用count计数,每五个数换行
if (count % 5 == 0) {
System.out.print("\n");
}
}
}
}
101
103
107
109
113
121
127
131
137
139
143
149
151
157
163
167
169
173
179
181
187
191
193
197
199
25