目录
①小易的升级之路
import java.io.*;
import java.util.*;
public class Main {
public static int func(int a, int b) {
int c;
//求公约数:辗转相除法
while ((c = a % b) != 0) {
a = b;
b = c;
}
return b;
}
public static void main(String[] args) throws Exception {
//循环读入
String line;
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
while ((line = reader.readLine()) != null) {
//第一行输入
String[] arr = line.split(" ");
int num = Integer.parseInt(arr[0]);
int c = Integer.parseInt(arr[1]);
//读入boss的防御值
for (int i = 0; i < num; ++i) {
int power = Integer.parseInt(reader.readLine());
//如果大于怪物能力值则累加
if (c >= power)
c += power;
//否则加上公约数
else
c += func(c, power);
}
System.out.println(c);
}
}
}
②找出字符串中第一个只出现一次的字符(字符串遍历)
如果输出第一个重复的字符串则使用栈或者哈希队列,!contains则放入栈或队列,如果contains则输出。
import java.util.*;
public class Main{
public static void func(String str){
char[]arr=str.toCharArray();
//定义数组来记录每个字符串出现次数
int[]count=new int[128];
for(int i=0;i<arr.length;i++){
count[arr[i]]++;
}
//标志位。如果没有遇到只出现一次的则输出-1
int ret=0;
//遍历寻找第一个只出现一次的字符
for(int i=0;i<arr.length;i++){
if(count[arr[i]]==1){
ret=-1;
System.out.println(arr[i]);
break;
}
}
if(ret==0){
System.out.println(-1);
}
}
public static void main(String[]args){
Scanner sc=new Scanner(System.in);
while(sc.hasNext()){
String str=sc.nextLine();
func(str);
}
}
}