昨天开始刷LeetCode,在这个过程中学到了不少Trick,为了方便复习,特地整理出来。
字符串操作类
List转String[]
示例代码:
List<String> wordList = new ArrayList<String>();
String[] results = new String[wordList.size()];
wordList.toArray(results);
获得char在String中的index
比如说想在”abdc”中查找’a’的index,可以使用下面的代码。
示例代码:
int index = "abdc".indexOf('a');
再附一个indexOf函数的用法说明
int indexOf(int ch,int fromIndex)函数:就是字符ch在字串fromindex位后出现的第一个位置.没有找到返加-1
eg:String str="a2dfcfar1bzvb";
System.out.println(str.indexOf(97,2));
看这个例子,输出:6
用for循环遍历String中的char
示例代码如下:
for(char c: w.toCharArray()){
System.out.println(c);
}
翻转字符串
有内建方法:
public String reverseString(String s) {
StringBuilder sb = new StringBuilder(s);
return sb.reverse().toString();
}
位操作类
得到一个整数的二进制表示中有几个1
可以使用内建的Integer.bitCount()函数。
int bitCount = Integer.bitCount(999);
暂未归类
获得二维数组的”长度”和”宽度”
使用下面的代码可以获得二维数组的长度和宽度:
public int countBattleships(char[][] board) {
int m = board.length; // 长度
int n = board[0].length; // 宽度
}
如何得到调试信息
因为我们笔试的时候不能用编译器嘛,如果要调试的话只能看运行的结果。所以如果有需要的话,就在输出结果上做文章,把调试信息作为输出结果打出来就行了。