leetCode笔记--(1)
陪朋友刷题,记录下。
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)的更多相关文章
- 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 ...
- Leetcode 笔记 112 - Path Sum
题目链接:Path Sum | LeetCode OJ Given a binary tree and a sum, determine if the tree has a root-to-leaf ...
- Leetcode 笔记 110 - Balanced Binary Tree
题目链接:Balanced Binary Tree | LeetCode OJ Given a binary tree, determine if it is height-balanced. For ...
- Leetcode 笔记 100 - Same Tree
题目链接:Same Tree | LeetCode OJ Given two binary trees, write a function to check if they are equal or ...
- Leetcode 笔记 99 - Recover Binary Search Tree
题目链接:Recover Binary Search Tree | LeetCode OJ Two elements of a binary search tree (BST) are swapped ...
- Leetcode 笔记 98 - Validate Binary Search Tree
题目链接:Validate Binary Search Tree | LeetCode OJ Given a binary tree, determine if it is a valid binar ...
- Leetcode 笔记 101 - Symmetric Tree
题目链接:Symmetric Tree | LeetCode OJ Given a binary tree, check whether it is a mirror of itself (ie, s ...
- Leetcode 笔记 36 - Sudoku Solver
题目链接:Sudoku Solver | LeetCode OJ Write a program to solve a Sudoku puzzle by filling the empty cells ...
- Leetcode 笔记 35 - Valid Soduko
题目链接:Valid Sudoku | LeetCode OJ Determine if a Sudoku is valid, according to: Sudoku Puzzles - The R ...
- 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 ...
随机推荐
- 关于在linux下出现stdio.h文件不存在等gcc标准库不能找到的解决的方法
首先说明一下我的系统配置:ubuntu 12.04 gcc 4.6.3 有几天没有使用ubuntu了,今天拿出来编程序,刚開始编译一个uboot1.1.6的代码.出现了stdio.h:没有那么 ...
- IntelliJ IDEA测试学习网站
IntelliJ IDEA测试学习网站 http://idea.lanyus.com/ 嗯,请支持正版:
- java 命令行 编译 运行程序
学习java使用IDE前最好先用用命令行的javac.java来跑一跑简单的程序,这样能够熟悉一下包管理对.class文件路径的影响. 我们先写一段简单的代码: package com.csdn.lk ...
- IJKPlayer问题集锦之不定时更新
1.IJKPlayer 不像系统播放器会给你旋转视频角度,所以你需要通过onInfo的what == IMediaPlayer.MEDIA_INFO_VIDEO_ROTATION_CHANGED去获取 ...
- tp框架---表单验证
自动验证是ThinkPHP模型层提供的一种数据验证方法,可以在使用create创建数据对象的时候自动进行数据验证.分为静态验证和动态验证. 关于基础知识,请查看手册“自动验证”一章. 一.静态验证 ( ...
- android 学习记录-----------android 活动 意图 碎片
将此篇博客作为记录android项目开发过程中的学习记录
- TPL详解、使用
使用时注意点 private async void button5_Click(object sender, EventArgs e) { /* string i1 = await F1Async() ...
- C++关键字简述
ID 范畴 关键字 说明 1 数据类型 bool 基本类型—-布尔类型 2 数据类型 char 基本类型—-字符类型 3 数据类型 wchar_t 基本类型—-宽字符类型 4 数据类型 double ...
- idea下的jsp开发中cannot resolve taglib with uri的解决方法
写jsp难免会用到<c:foreach>标签,于是我在idea上的jsp顶头写下了 <%@ taglib prefix="c" uri= 'http://java ...
- Segment公司--整合数据进行分析
YC毕业生Segment获得1500万美元A轮融资 现在收集数据是每一个公司的必修课了,而且是从各种不同 API 上收集数据,但是你还要把这些数据整合起来才能发挥作用,Segment就能帮你整合各个平 ...