题目一:
挑选便宜的厂商:
厂商1:大于等于3件打7折,实付大于等于50元免运费10元
厂商2:满10元减2元,实付大于等于99免运费6元
根据输入件数、原价,计算选择哪个厂商便宜(四舍五入精确到分)。输出 1、2、0;
输入描述:
输入一行,第一列是商品件数,取值大于0、小于1万;第二列是原价,大于0、小于1万,单位元,精确到分
输出描述:
一个数代表选择哪个厂商
1代表厂商1,2代表厂商2,0代表相等
示例
输入 4 2.30 ; 输出 2
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
double num = sc.nextDouble();//数量
double price = sc.nextDouble();//价格
double sum1 = num * price;
double sum2 = num * price;
if (num >= 3) {sum1 = sum1 * 0.7;}
int n = (int)(sum2 / 10);//满足满10减2的件数
if (sum2 >= 10) {sum2 = sum2 - 2 * (double)n;}
if (sum1 < 50) {sum1 += 10;}
if (sum2 < 99) {sum2 += 6;}
if (sum2 == sum1) {System.out.println(0);
}else if(sum1 > sum2){System.out.println(2);
}else{System.out.println(1);}
}
}
题目二:
给定一个字符串str,返回其最长有效括号子串的长度
输入描述:
1、有效的括号字符串是指只包含小括号,不包含其他字符,且满足括号语法规则的字符串。例如“(())”是有效的,"((a))"、"(()”、“{()}”是无效的。
2、有效括号子串是指输入字符串中满足有括号字符串规则的子串。例如“()(()()(”的有效括号子串包含“()”和“()()”,其中最长的有效括号子串长度即为4。
输出描述:
返回其最长有效括号子串的长度
示例
输入 ()(()()(;输出 4
import java.util.Stack;
import java.util.Scanner;
public class Main {
public static int getMaxLengthOfValidBrackets(String str){
Stack<Integer> stack = new Stack<Integer>();
int len = 0;
char chars[] = str.toCharArray();
for (int i = 0; i < chars.length; i++) {
if (chars[i] == ')' && !stack.empty() && chars[stack.peek()] == '(') {
stack.pop();
if (stack.empty()) {
len = i + 1;
}else{
if (i - stack.peek() > len) {
len = i - stack.peek();
}
}
}else{
stack.push(i);
}
}
return len;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.next();
System.out.println(getMaxLengthOfValidBrackets(str));
}
}
题目三:
DNA序列由四种核苷酸组成,主要是腺嘌呤(A),胞嘧啶(C),鸟嘌呤(G),胸腺嘧啶(T)。每个字母代表一种碱基,两个碱基形成一个碱基对,碱基对的配对规律是固定的,既是:A-T,C-G。典型的他们无间隔的排列在一起,例如序列AAAGTCTGAC。任意长度大于4的遗传核苷酸被称为一个序列,提取重复DNA序列是一种基础的DNA序列特征提取方法,请给出DNA序列的最长重复片段,以及重复片段的长度。
注:1)输出格式为“序列”+“空格”+“序列长度”,如果没有找到重复序列,则输出“空格”+0
2)如果出现多个相同长度的重复序列,则输出第一次出现的在序列中的重复序列及其长度
3)输入可以是全小写的,也可以是全大写的,区分大小写;
输入描述:
一个长度不超过100的DNA序列
输出描述:
最长的重复DNA序列片段,重复片段的长度
示例
输入 AGCTAGCT ;输出 4
import java.util.Scanner;
public class Main {
public static String getMaxLengthOfSubRepeatString(String str){
String maxStr = "";
for (int i = 0; i < str.length(); i++) {
for (int j = 0; j < i; j++) {
String temp = "";
int k = j;int m = i;
while (i < str.length() && k < str.length() && m < str.length() &&
str.charAt(m)==str.charAt(k)){
m++;k++;
}
temp = str.substring(j,k);
if (temp.length() > maxStr.length()) {
maxStr = temp;
}
}
}
return maxStr;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.next();
String result = getMaxLengthOfSubRepeatString(str);
System.out.println(result+" "+str.length());
}
}