题目描述:
[001]
小美是美团的前端工程师,为了防止系统被恶意攻击,小美必须要在用户输入用户名之前做一个合法性检查,一个合法的用户名必须满足以下几个要求:
用户名的首字符必须是大写或者小写字母。
用户名只能包含大小写字母,数字。
用户名需要包含至少一个字母和一个数字。
如果用户名合法,请输出 “Accept”,反之输出 “Wrong”。
[002]
小美是美团仓库的管理员,她会根据单据的要求按顺序取出仓库中的货物,每取出一件货物后会把剩余货物重新堆放,使得自己方便查找。已知货物入库的时候是按顺序堆放在一起的。如果小美取出其中一件货物,则会把货物所在的一堆物品以取出的货物为界分成两堆,这样可以保证货物局部的顺序不变。
已知货物最初是按 1~n 的顺序堆放的,每件货物的重量为 w[i] ,小美会根据单据依次不放回的取出货物。请问根据上述操作,小美每取出一件货物之后,重量和最大的一堆货物重量是多少?
[003]
小美的一个兼职是美团的一名跑腿代购员,她有 n 个订单可以接,订单编号是 1~n ,但是因为订单的时效性,他只能选择其中 m 个订单接取,精明的小美当然希望自己总的获利是最大的,已知,一份订单会提供以下信息,跑腿价格 v ,商品重量 w kg,商品每重 1kg ,代购费用要加 2 元,而一份订单可以赚到的钱是跑腿价格和重量加价之和。小美可是开兰博基尼送货的人,所以自然不会在意自己会累这种事情。请问小美应该选择哪些订单,使得自己获得的钱最多。
请你按照选择的订单编号的从小到大顺序,如果存在多种方案,输出订单编号字典序较小的方案。
[004]
小团是一个莫得感情的 CtrlCV 大师,他有一个下标从 1 开始的序列 A 和一个初始全部为 -1 序列 B ,两个序列的长度都是 n 。他会进行若干次操作,每一次操作,他都会选择 A 序列中一段连续区间,将其粘贴到 B 序列中的某一个连续的位置,在这个过程中他也会查询 B 序列中某一个位置上的值。
我们用如下的方式表示他的粘贴操作和查询操作:
粘贴操作:1 k x y,表示把 A 序列中从下标 x 位置开始的连续 k 个元素粘贴到 B 序列中从下标 y 开始的连续 k 个位置上。原始序列中的元素被覆盖。(注意:输入数据可能会出现粘贴后 k 个元素超出 B 序列原有长度的情况,超出部分可忽略)
查询操作:2 x,表示询问B序列下标 x 处的值是多少。
第001题
import java.util.Scanner;
public class Solution {
public static boolean isBig(char c) {
return ('A' <= c) && (c <= 'Z');
}
public static boolean isSmall(char c) {
return ('a' <= c) && (c <= 'z');
}
public static boolean isNum(char c) {
return ('0' <= c) && (c <= '9');
}
public static boolean check(String temp){
char[] username = temp.toCharArray();
int len = username.length;
if(len < 2 || (!isBig(username[0]) && !isSmall(username[0]))){
return false;
}
boolean num = false;
for(int j = 1;j < len;j ++){
if(!isBig(username[j]) && !isSmall(username[j]) && !isNum(username[j])){
return false;
}
if(isNum(username[j]))
num = true;
}
if(num){
return true;
}
return false;
}
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
int nums = Integer.parseInt(scan.nextLine());
for (int i = 0; i < nums; i++) {
String s = scan.nextLine();
if(check(s)) System.out.println("Accept");
else {
System.out.println("Wrong");
}
}
}
}
第002题
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.*;
public class test {
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
int num = Integer.parseInt(scan.nextLine());
String[] temp = scan.nextLine().split(" ");
String[] temp2 = scan.nextLine().split(" ");
int len = temp.length;
int[] weight = new int[len];
int[] dosth = new int[len];
for(int i = 0;i < len;i ++){
weight[i] = Integer.parseInt(temp[i]);
dosth[i] = Integer.parseInt(temp2[i]);
}
int[] right = new int[len];
int[] left = new int[len];
int rec = 0;
for(int i = 0;i < len;i ++){
left[i] = rec;
rec += weight[i];
}
rec = 0;
for(int i = len - 1;i >= 0;i --){
right[i] = rec;
rec += weight[i];
}
for(int i = 0;i < len;i ++){
int nowPos = dosth[i] - 1;
if(right[nowPos] > left[nowPos]){
System.out.println(right[nowPos]);
continue;
}
System.out.println(left[nowPos]);
}
}
}
第003题
import java.util.*;
class Order{
int id;
int price;
public Order(int id, int price){
this.id = id;
this.price = price;
}
}
public class test {
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
int m = scan.nextInt();
Order[] orders = new Order[n];
for(int i = 0;i < n;i ++){
orders[i] = new Order(i + 1, scan.nextInt() + scan.nextInt() * 2);
}
Arrays.sort(orders, new Comparator<Order>() {
@Override
public int compare(Order o1, Order o2) {
if(o1.price == o2.price){
return o1.id > o2.id ? 1 : -1;
}
return o1.price > o2.price ? -1 : 1;
}
});
int[] temp = new int[m];
for(int i= 0;i < m;i ++){
temp[i] = orders[i].id;
}
Arrays.sort(temp);
for(int i = 0;i < m - 1;i ++){
System.out.print(temp[i] + " ");
}
System.out.println(temp[m-1]);
}
}
第004题
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
var n, m int
var a, b, c, d int
in := bufio.NewReader(os.Stdin)
fmt.Scanf("%v\n", &n)
A := make([]int, n)
B := make([]int, n)
for i := 0; i < n; i++ {
fmt.Scanf("%v", &A[i])
B[i] = -1
}
fmt.Scanf("\n")
fmt.Scanf("%v\n", &m)
for ; m > 0; m-- {
fmt.Fscan(in, &a)
if a == 2 {
fmt.Fscan(in, &b)
fmt.Println(B[b-1])
}else{
fmt.Fscan(in, &b, &c, &d)
for i, j := c-1, d-1; j < n && i < n && b > 0; {
B[j] = A[i]
j++
i++
b--
}
}
}
}
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- fupindai.com 版权所有 赣ICP备2024042792号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务