陪朋友刷题,记录下。

1.
Evaluate the value of an arithmetic expression in Reverse Polish Notation.
Valid operators are +, -, *, /. Each operand may be an integer or another expression.
Note:
Division between two integers should truncate toward zero.
The given RPN expression is always valid. That means the expression would always evaluate to a result and there won't be any divide by zero operation.
出错的地方:
Q1. memcmp的误用引发的内存堆栈溢出,可能由于编译器的差别,本地OK,valgrind ok,但是远端ERROR。
修复用strcmp,按字节比,直到1个到尾。

Q2. 二级指针的运用
char* acSrc[5] = {"2", "1", "+", "3", "*"};
char** ppTcSrc = NULL;
ppTcSrc = acSrc;

取“2”, “1” 这些成员,原先取 *ppTcSrc + 0, *ppTcSrc + 1
129 printf("%s ", *ppTcSrc);
(gdb) n
140 return 0;
(gdb) p *ppTcSrc
$1 = 0x400bcb "2"
(gdb) p *ppTcSrc + 1
$2 = 0x400bcc ""
(gdb) p *ppTcSrc + 2
$3 = 0x400bcd "1"
(gdb) p *ppTcSrc + 3
$4 = 0x400bce ""
(gdb) p *ppTcSrc + 4
$5 = 0x400bcf "3"
(gdb) p *ppTcSrc + 5
$6 = 0x400bd0 ""
(gdb) p *ppTcSrc + 6
$7 = 0x400bd1 "%s "
本意是ppTcSrc[0], ppTcSc[1]. ... 也可以写成*(ppTcSrc), *(ppTcSrc + 1)
(gdb) p *(ppTcSrc + 2)
$10 = 0x400ba0 "+"
(gdb) p ppTcSc[2]
No symbol "ppTcSc" in current context.
(gdb) p *(ppTcSrc + 2)
$11 = 0x400ba0 "+"
(gdb) p ppTcSrc[2]
$12 = 0x400ba0 "+"

## 还是要注意下, ppTcSrc 的类型是char*, 想下他的指向,他的自加是什么意思。

2.
leetcode 7:
Given a non-empty string check if it can be constructed by taking a substring of it and appending multiple copies of the substring together. You may assume the given string consists of lowercase English letters only and its length will not exceed 10000.
Q1:
AddressSanitizer: heap-buffer-overflow on address 0x602000000298 at pc 0x7f6c0babb79b bp 0x7ffdfb3aca30 sp 0x7ffdfb3ac1e0
原因分析:
memcmp 的S使用,可能是编译器差距,本地OK。
解决方法:memcmp -> strncmp

3.405. Convert a Number to Hexadecimal

Given an integer, write an algorithm to convert it to hexadecimal. For negative integer, two’s complement method is used.
Note:
All letters in hexadecimal (a-f) must be in lowercase.
The hexadecimal string must not contain extra leading 0s. If the number is zero, it is represented by a single zero character '0'; otherwise, the first character in the hexadecimal string will not be the zero character.
The given number is guaranteed to fit within the range of a 32-bit signed integer.
You must not use any method provided by the library which converts/formats the number to hex directly.
Example 1:
Input:
26

Output:
"1a"

-- 这个做的很开心,虽然折腾了下,但是还是搞定了。^_^
Q1:
# 负数问题
负数是有符号的,当想要转成字符串,需要先转成无符号的
# 补码问题
负数,计算机用补码表示。
$15 = -1
(gdb) p /x iRh
$16 = 0xffffffff
(gdb) p /x iRh>>4
$17 = 0xffffffff
# 值范围
unsigned int 0~4294967295
int 2147483648~2147483647
unsigned long 0~4294967295
long 2147483648~2147483647
long long的最大值:9223372036854775807
long long的最小值:-9223372036854775808
unsigned long long的最大值:1844674407370955161
__int64的最大值:9223372036854775807
__int64的最小值:-9223372036854775808
unsigned __int64的最大值:18446744073709551615
# -2147483648的补码
if (num == -2147483648) return 0xFFFFFFFF80000000;

git 地址:

https://github.com/HellsingAshen/Myleetcode-cn

leetCode笔记--(1)的更多相关文章

  1. Leetcode 笔记 113 - Path Sum II

    题目链接:Path Sum II | LeetCode OJ Given a binary tree and a sum, find all root-to-leaf paths where each ...

  2. Leetcode 笔记 112 - Path Sum

    题目链接:Path Sum | LeetCode OJ Given a binary tree and a sum, determine if the tree has a root-to-leaf ...

  3. Leetcode 笔记 110 - Balanced Binary Tree

    题目链接:Balanced Binary Tree | LeetCode OJ Given a binary tree, determine if it is height-balanced. For ...

  4. Leetcode 笔记 100 - Same Tree

    题目链接:Same Tree | LeetCode OJ Given two binary trees, write a function to check if they are equal or ...

  5. Leetcode 笔记 99 - Recover Binary Search Tree

    题目链接:Recover Binary Search Tree | LeetCode OJ Two elements of a binary search tree (BST) are swapped ...

  6. Leetcode 笔记 98 - Validate Binary Search Tree

    题目链接:Validate Binary Search Tree | LeetCode OJ Given a binary tree, determine if it is a valid binar ...

  7. Leetcode 笔记 101 - Symmetric Tree

    题目链接:Symmetric Tree | LeetCode OJ Given a binary tree, check whether it is a mirror of itself (ie, s ...

  8. Leetcode 笔记 36 - Sudoku Solver

    题目链接:Sudoku Solver | LeetCode OJ Write a program to solve a Sudoku puzzle by filling the empty cells ...

  9. Leetcode 笔记 35 - Valid Soduko

    题目链接:Valid Sudoku | LeetCode OJ Determine if a Sudoku is valid, according to: Sudoku Puzzles - The R ...

  10. Leetcode 笔记 117 - Populating Next Right Pointers in Each Node II

    题目链接:Populating Next Right Pointers in Each Node II | LeetCode OJ Follow up for problem "Popula ...

随机推荐

  1. Linux磁盘分区方案(转)

    硬盘分区的各个分区的意义 尽管可以根据我们已经提到的分区原则,Linux装在一个单一的大分区中,但更好的主意是将它分开.综合了单一分区的简单性和多分区的灵活性,我们推荐以下配置.请注意:如果你想安装L ...

  2. JVM基础(二) 实现自己的ClassLoader

    为何要花时间实现自己的ClassLoader 尽管人生的乐趣非常大一部分来自于将时间花在有意思可是无意义的事情上,可是这件事绝对是有意思并且有意义的,有下面几个情景是值得我们花费时间实现自己的clas ...

  3. Struts2 动态结果集

    1.index.jsp <body> 动态结果 一定不要忘了为动态结果的保存值设置set get方法 <ol> <li><a href="user/ ...

  4. Android訪问网络,使用HttpURLConnection还是HttpClient?

    原文地址:http://android-developers.blogspot.com/2011/09/androids-http-clients.html 大多数的Android应用程序都会使用HT ...

  5. Ajax的两种实现方式

    //ajax的jquery实现 function aclick(){//alert("測试一");var name = $("#userName").val() ...

  6. mysql 10060远程不能访问

    1.网络不通. 检查能不能ping通. 2.防火墙设置. 防火墙是否放过MySQL的进程,是否屏蔽了mysql的3306端口. 3.mysql的账户设置. mysql账户是否不允许远程连接.如果无法连 ...

  7. 修改linux内核开机logo并居中全屏显示【转】

    本文转载自:http://blog.csdn.net/xuezhimeng2010/article/details/49299781 1.准备图片  使用ubuntu自带的绘图软件GIMP是最为快捷的 ...

  8. 扩展函数之 IsWhat 简单好用

    代码实现: /***扩展函数名细***/ //[IsInRange] ; //以前写法 & num < ) { } //现在写法 , )) { } //datetime类型也支持 //[ ...

  9. 智能识别收货地址 javascript

    欢迎加入前端交流群交流知识&&获取视频资料:749539640 地址: https://github.com/wzc570738205/smart_parse

  10. 用fiddler不能抓取https及证书无法导出

    本次说的不是首次安装fiddler 1.不管有没有安装成功,先查看有没有安装过证书,有的话删除,重新进行安装 打开fiddler,找到Tools-HTTPS-Athons-Open windows C ...