SHEIN笔试

算法1

给定一个含有n个字符的数组和一个单词作为target。

找出数组中第一个包含了指定单词所有自读(保持单词中原有的顺序)的子数组,并返回其子数组的其实索引位和结束索引位。如果不存在符合条件的子数组,返回空数组。

示例1:

1
2
输入:target=abc,nums[c,a,c,b,c,c]
输出:[1,4]

示例2:

1
2
输入:target=dd,nums[a,d,c,d,d]
输出:[1,3]

代码为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
public class Main {
public static void main(String[] args) {
String target = "abc";
char ch[] = {'b','g','c','a','l','g','b','c'};
int[] match = match(target, ch);
for (int i = 0;i<match.length;i++){
System.out.print(match[i]+" ");
}
}
public static int[] match(String target,char ch[]){
int n = ch.length;
int m = target.length();
int res[] = new int[2]; //结果数组
int pos = 0; //记录搜索到字符串的什么位置
for (int i = 0;i<n;i++){
if (target.charAt(pos)==ch[i]){ //如果找到一个
if (pos==0){ //如果市首位,则结果数组记录下来
res[0] = i;
}
pos++; //则字符串中的位置向后移动一位
}
if (pos==m){ //如果是最后一位,则结果数组记录下来
res[1] = i;
break;
}
}
if (res[1]!=0){
return res;
}else return new int [0];
}

}

sql

answer_tb中表的内容为:

image-20220930155955602

要查询的内容为:

image-20220930160019309

其中per_num:回答问题的数量/答题人数

分析

  • 通过输出的结果可以看出,是通过日期分组,通过日期的时间进行从低到高的排序。

  • 计算per_num时里面的答题人数要去重。

  • 并且结果保留两位有效数字。

代码为:

1
SELECT answer_date,FORMAT((count(*)/ count(DISTINCT author_id)),2) per_num FROM answer_tb where answer_date BETWEEN "2021-11-01" and "2021-11-05" GROUP BY answer_date order by answer_date asc

SHEIN笔试
http://example.com/2022/09/30/SHEIN笔试/
作者
zlw
发布于
2022年9月30日
许可协议