代码经验整理总结

1.一个负数转正:x = -x;

2.取末尾数字:lastDigit = x - x / 10 * 10;
                        result = result * 10 + lastDigit; //采用加的方法,就不会产生001,这种输出了
                        x /= 10;

3.String to Integer (atoi), Leetcode 解题笔记
这道题要考虑的情况很多,而且很多陷阱,虽然思路不难,但是不容易做对。
要考虑的情况有:
1. 空String
2. 开头的空格
3. 正负符号 陷阱:注意有可能出现”+-356″的情况
4. 最大最小值 陷阱:有可能出现”1000000001″的情况
5. 尾部的非数字字符

判断一个字符是否为数字,可用代码中的方法,判断 ‘0’ <= c <= '9',也可利用Character.isDigit(c)的方法
Integer.MAX_VALUE

4.roman to integer:技巧 背后往前推。遇到I,若>5,则前面遇到V,则-1, 这样就方便许多。

5.以下几题完全不会,要注意:
20 Valid Parentheses 26.6% Easy
19 Remove Nth Node From End of List

21 Merge Two Sorted Lists 其实node就是一个点,node.next就是下一个,不要画弧线。如果没有下一个,那就是null


36.Valid Sudoku

定义哈希函数集:

HashSet<T> xx=new HashSet<T>;

T=Character (注意不是char啊!!!!), String, Integer

     for(int k=0;k<9;k++){ //注意每个for循环里面都要有int 申明过变量,所以第一个for里变量使用k。这样 下面就可以套用k了。

5-1 for (int i = k/3*3; i < k/3*3+3; i++) {           
30             for (int j = (k%3)*3; j < (k%3)*3+3; j++) {
31                 if (board[i][j] == '.')
32                     continue;   //continue的使用要注意。

注意当k=0,1,2,3---8时,k/3*3 --> 0 0 0 ,3 3 3,6 6 6 。而(k%3)*3 --> 0 3 6 ,0 3 6, 0 3 6.

作为行开头,行 +1,+2,+3. 作为列开头,

0-0 0-3 0-6 每个x-x都可以代表着一个9个数字的方块

3-0 3-3 3-6

6-0 6-3 6-6

上面这个要好好想想。


5)trim()函数,是去除前后所以的空格。

String s=" abc        ";
String s2=s.trim();
System.out.print(s2+"---"+s+"---");

输出:abc--- abc        ---

6)新函数-split,用法如下:

 public int lengthOfLastWord(String s) {
2         String[] a = s.split(" "); //空格是" ",而不是' '.还有遇到转义字符要小心,见下
3         if(a == null || a.length == 0)
4             return 0;
5 
6         return a[a.length-1].length();
7     }

如果用“.”作为分隔的话,必须是如下写法,String.split("\\."),这样才能正确的分隔开,不能用String.split(".");

如果用“|”作为分隔的话,必须是如下写法,String.split("\\|"),这样才能正确的分隔开,不能用String.split("|");

“.”和“|”都是转义字符,必须得加"\\";

7)










  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值