欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 新车 > 蓝桥备战国奖题后总结(1)

蓝桥备战国奖题后总结(1)

2024/10/26 2:37:16 来源:https://blog.csdn.net/2302_81247414/article/details/142877954  浏览:    关键词:蓝桥备战国奖题后总结(1)

       今天成功报名蓝桥杯,期待审核通过,争取在忙碌的每天都要抽出一点时间刷题,小白一枚,无刷题经验,文章旨在记录刷题后的知识点以便复习,题目难度从简单开始,大标题为 oj 题目,个人只会暴力解题,不了解算法,遇到好的题解代码会代替我的暴力解题代码,在日后也会慢慢学习了解,不论快与慢,只要在坚持,就是在进步——高博

 注:整个系列为 Java 语言进行题解,针对个人欠缺总结,若有不懂,可在评论区发表。

一、确定字符串中是否包含唯一字符

public static void main(String[] args) {Scanner scanner = new Scanner(System.in);String s=scanner.nextLine();HashMap<Character,Integer> map=new HashMap<>();for(int i=0;i<s.length();i++){if(map.containsKey(s.charAt(i))){map.put(s.charAt(i),map.get(s.charAt(i))+1);}else{map.put(s.charAt(i),1);}}Collection<Integer> val=map.values();if(val.contains(2))System.out.println("NO");else System.out.println("YES");}

HashMap中的两个方法:

1、HashMap中 values() 方法

HashMap类中的values()方法返回一个包含HashMap中所有valueCollection视图。这个Collection是基于HashMap的映射关系的,所以对HashMap的修改会反映在这个Collection中,反之亦然。如果在迭代过程中修改了HashMap,那么迭代的结果是不确定的。下面是一个简单的例子:

HashMap<String, Integer> map = new HashMap<>();
map.put("a", 1);
map.put("b", 2);
map.put("c", 3);Collection<Integer> values = map.values();
System.out.println(values); // 输出 [1, 2, 3]map.put("d", 4);
System.out.println(values); // 输出 [1, 2, 3, 4]

在这个例子中,我们创建了一个HashMap并向其中添加了三个键值对。然后我们使用values()方法获取了所有的value,并输出了它们。接着我们又向HashMap中添加了一个键值对,并再次输出了values()方法返回的Collection,可以看到它也被更新了。

2HashMap中 KeySet()方法

可以使用keySet()方法获取HashMap中所有的键(主键)。例如:

HashMap<String, Integer> map = new HashMap<>();
map.put("apple", 1);
map.put("banana", 2);
map.put("orange", 3);Set<String> keys = map.keySet();
for (String key : keys) {System.out.println(key);
}

输出结果为:

apple
banana
orange

在上面的例子中,keySet()方法返回一个包含HashMap中所有键的Set集合。我们可以使用for-each循环遍历这个集合,获取每个键并打印出来。

3、输入字符串

可以使用Scanner类来输入字符串,示例代码如下:

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("请输入字符串:");String str = scanner.nextLine();System.out.println("您输入的字符串是:" + str);}
}

运行程序后,控制台会提示用户输入字符串,用户输入后按回车键即可。程序会将用户输入的字符串保存在变量str中,并输出到控制台上。

4、字符串转化为字符数组

可以使用String类的toCharArray()方法将字符串转换为字符数组。例如:

String str = "Hello World";
char[] charArray = str.toCharArray();

这样就可以将字符串"Hello World"转换为字符数组charArray

import java.util.Scanner;public class InputExample {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("请输入一个字符:");char c = scanner.next().charAt(0);System.out.println("您输入的字符是:" + c);}
}

在这个例子中,我们使用 Scanner 类来读取用户输入的字符。首先,我们创建了一个 Scanner 对象,并将 System.in 作为参数传递给它,以便从控制台读取输入。然后,我们使用 next() 方法读取输入的字符串,并使用 charAt(0) 方法获取第一个字符。最后,我们将输入的字符打印到控制台上。 

5、输入字符

在Java中,可以使用Scanner类来输入字符。以下是一个简单的例子:

二、 确定字符串是否是另一个的排列

public static void main(String[] args) {Scanner scan = new Scanner(System.in);String st1=scan.nextLine();String st2=scan.nextLine();char[] s1=st1.toCharArray();char[] s2=st2.toCharArray();Arrays.sort(s1);Arrays.sort(s2);for(int i=0;i<s1.length;i++){if(s1[i]!=s2[i]){System.out.println("NO");return;}}System.out.println("YES");scan.close();}

1、sort() 方法给数组排序

Java中可以使用Arrays类中的sort方法来给数组排序。sort方法可以对数组进行升序排序或者降序排序。

以下是一个对整型数组进行升序排序的例子:

int[] arr = {5, 2, 9, 1, 5, 6};
Arrays.sort(arr); // 对数组进行升序排序
System.out.println(Arrays.toString(arr)); // 输出结果为 [1, 2, 5, 5, 6, 9]

以下是一个对字符串数组进行降序排序的例子:

String[] arr = {"apple", "banana", "orange", "pear"};
Arrays.sort(arr, Collections.reverseOrder()); // 对数组进行降序排序
System.out.println(Arrays.toString(arr)); // 输出结果为 [pear, orange, banana, apple]

需要注意的是,如果要对自定义类型的数组进行排序,需要保证该类型实现了Comparable接口或者传入一个Comparator对象作为参数。

2、equals 方法和 ==

equals是Java中的一个方法,用于比较两个对象是否相等。在Java中,有两种方式来比较对象的相等性:

  1. ==运算符:用于比较两个对象的引用是否相等,即它们是否指向同一个内存地址

  2. equals方法:用于比较两个对象的内容是否相等,即它们的属性值是否相等

例如,我们有一个Person类,包含nameage两个属性:

public class Person {private String name;private int age;public Person(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public int getAge() {return age;}@Overridepublic boolean equals(Object obj) {if (this == obj) {return true;}if (obj == null || getClass() != obj.getClass()) {return false;}Person person = (Person) obj;return age == person.age && Objects.equals(name, person.name);}

在这个例子中,我们重写了equals方法,使用name和age属性来比较两个Person对象是否相等。我们可以使用以下代码来测试:

Person person1 = new Person("Tom", 20);
Person person2 = new Person("Tom", 20);
Person person3 = new Person("Jerry", 30);System.out.println(person1.equals(person2)); // true
System.out.println(person1.equals(person3)); // false

在这个例子中,person1 和 person2 的 name age 属性都相等,因此 equals 方法返回 true;而 person1 和 person3 name age 属性不相等,因此 equals 方法返回 false

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com