今天除了复习了一下之前学过的前端知识之外都在刷算法题。上午一个题做了三个点没做出来,下午来了感觉一口气做出来五道字符串相关题。本来看着leetcode那几千道题有点脚软,瞬间重拾信心,也许,只是也许这几千道题有做完的那一天。
下面是今日总结:
合并表问题对应hashmap
HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。
HashSet 基于 HashMap 来实现的,是一个不允许有重复元素的集合。
stringbuffer判断容量的函数是capacity()
for (int i = 0; i < str.length(); i++) {
if (str.indexOf(str.charAt(i)) == i) {
result.append(str.charAt(i));
}
}
以上是字符串str去重,利用了StringBuilder result
需要去重可以考虑hashset,hashset内元素均唯一
需要逆序可以考虑StringBuilder或者StringBuffer
Integer.toString()int类型转字符串类型
实现字符串字符顺序反转的代码。StringBuilder直接append整个字符串时还是将字符串中每一个字符分开存储。
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
StringBuilder sb=new StringBuilder();
String str=sc.nextLine();
sb.append(str);
sb.reverse();
System.out.println(sb);
}
}
对于句子逆序需要用到split对字符串进行切割,因为句子逆序仅仅是单词的逆序排列,单词内字符串的字符顺序没有发生改变
如果要进行排序可以考虑ArrayList和数组,arraylist排序的方法是Collections.sort(ArrayLIst名),可以对数字和按首字母进行排序.但是需要引入collections类。数组排序方法是array.sort()
进制转换函数
Integer.toString(x,y);//把十进制数字x转换成y进制。注意此时得到结果类型为字符串
Integer.parseInt(x,y);//把y进制的数字x转换为十进制
Integer.toHexString()10进制转16进制
Integer.toBinaryString()10进制转2进制
Integer.toOctalString()10进制转8进制
以上方法返回的都是字符串类型