刷LeetCode题目一周,主要采用C++和Python编程手段,截至目前做了5道简单的leetcode题目,做下阶段性的小结:

小结主要通过手撕代码,复习加回顾,尽量避免自己眼高手低的情况发生,对于自己还不熟悉的内容,再次标注出来吗,以下是手撕代码的记录:

Python实现:

第二遍编程中出现的问题和不熟的地方,都已标注出来,着重复习,

 class Solution:
"""
注意:
1. Python预研在处理负数时,最好将其转换成正数,然后最后把结果乘-1
2. 学到了一种赋值+判断的写代码方式
"""
def ReverseNum(self,num:int)->int:
rev = 0;
temp:int = num if num>0 else -num
while (temp):
pop = temp%10
rev = rev*10 + pop
temp = temp//10 INT_MAX = pow(2,31)-1
INT_MIN = pow(2,31)*(-1) if num > 0:
if rev > INT_MAX:
return 0
else:
if (-rev) < INT_MIN:
return 0
return rev if num>0 else -rev """
注意:

"""
def isPalindrome(self,num:int)->bool:
if num < 0:
return False
rev = 0
temp = num
INT_MAX = pow(2,31)-1
while(temp):
pop = temp%10
rev = rev*10 + pop
temp = temp//10 if (rev != num):
return False
return True """
注意:
1. 当长度为1的时候,for循环中的算法将不起作用
2. python的字符串没有最后的'\0',因此一定要考虑最后一个越界的影响
"""
def romanToNum(self,strs)->int:
table = {'I':1,'V':5,'X':10,'L':50,'C':100,'D':500,'m':1000} if (len(strs) == 1):
return table[strs[0]]
rev = 0
for i in range(len(strs)-1):
if table[strs[i]] < table[strs[i+1]]:
rev -= table[strs[i]]
else:
rev += table[strs[i]]
return (rev + table[strs[i+1]]) """
注意:
当输入为空列表时,需要第一个if判断
当输入列表含有空字串时,则需要return时判断i的值是否大于0
"""
def longestCommonPrefix(self, strs)->str:
if len(strs)==0:
return "" for i in range(len(strs[0])):
for j in range(1,len(strs)):
if i>=len(strs[j]) or strs[0][i] != strs[j][i]:
return strs[0][0:i] if i>0 else ""
return strs[0]

C++实现

 class Solution{
public:
int ReverseNum(int num);
bool isPalindrome(int num);
int RomanToNum(string RomanStr);
string longestCommonPrefix(vector<string> &strs);
}; int Solution::ReverseNum(int num)
{
long long rev = ;
int temp = num;
while(temp)
{
int pop = temp%;
rev = rev* + pop;
temp = temp/;
if(rev < INT_MIN || rev > INT_MAX)
{
return ;
}
}
return rev;
}; /*
注意:
1. 数据在发生反转的时候,一定要考虑溢出的情况,C++中可以采用更宽字节类型的变量来暂存结果,python可能需要溢出
*/
bool Solution::isPalindrome(int num)
{
if (num < ){
return false;
}
long long rev = ;
int temp = num;
while(temp)
{
int pop = temp%;
rev = rev* + pop;
temp /= ;
}
if (num != rev)
return false;
return true;
}; /*
注意:
1. 再次重温了下map的使用方式
*/
int Solution::RomanToNum(string RomanStr)
{
int rev = ;
if (RomanStr.empty())
return ;
map<char,int> table = {
{'I',},
{'V',},
{'X',},
{'L',},
{'C',},
{'D',},
{'M',}
}; int length =RomanStr.size();
for(int index=; index<length; index++)
{
if(table[RomanStr[index]] < table[RomanStr[index+]])
{
rev += (-) * table[RomanStr[index]];
continue;
}
rev += table[RomanStr[index]];
}
return rev;
}; /*
注意:
1. vector的使用方法
2. substr的使用方法
3. C++中对于字串返回可以直接返回""",不像python要注意返回空字串和空列表的区别
*/
string Solution::longestCommonPrefix(vector<string> &strs)
{
if (strs.size()== || strs[].size()==)
{
return "";
} for(int i=; i<strs[].size(); i++)
{
for(int j=; j<strs.size(); j++)
{
if (strs[][i] != strs[j][i]){
return strs[].substr(,i);
}
}
}
return strs[];
}

【LC_Overview1_5】---学会总结回顾的更多相关文章

  1. [C#] C# 知识回顾 - 学会处理异常

    学会处理异常 你可以使用 try 块来对你觉得可能会出现异常的代码进行分区. 其中,与之关联的 catch 块可用于处理任何异常情况. 一个包含代码的 finally 块,无论 try 块中是否在运行 ...

  2. [C#] C# 知识回顾 - 学会使用异常

    学会使用异常 在 C# 中,程序中在运行时出现的错误,会不断在程序中进行传播,这种机制称为“异常”. 异常通常由错误的代码引发,并由能够更正错误的代码进行 catch. 异常可由 .NET 的 CLR ...

  3. 技术|程序员必须要学会Google搜索技巧

    程序员必须要学会Google搜索技巧 摘要: 因为Google在我天朝被墙,学FQ请通过Bing进行搜索如何FQGoogle搜索技巧我曾经多次劝我的另一个朋友花10分钟学习一下Google通配符的使用 ...

  4. 2015.12.29~2015.12.30真题回顾!-- HTML5学堂

    2015.12.29~2015.12.30真题回顾!-- HTML5学堂 吃饭,能够解决饥饿,提供身体运作机能.练习就像吃饭,强壮自己,提升编程技能,寻求编程技巧的最佳捷径!吃饭不能停,练习同样不能停 ...

  5. [原创]AHA大会回顾

    AHA大会回顾 缘起 AHA之前参加了Daniel的培训,了解到AHA大会,觉得很高大上,开始有些心动.考虑到是工作时间,而且是外地,所以也就停留在心动层面了.之后与伯薇和四正吃饭,听说他们要去参加这 ...

  6. FMDB 二次封装工具类,让你快速学会封装,集成数据库

    来源:StrivEver 链接:http://www.jianshu.com/p/4c77aee0b41c 上个版本为了增加用户体验,部分页面集成了离线缓存数据功能,于是就在项目里使用了数据库管理离线 ...

  7. 学会Func

    学会Func 前言 首先你要会最基本的委托的使用,如果不会,看起来可能会有难度.. 不过第一个例子将帮你复习一下委托delegate 接下来通过几个例子就会学会怎么灵活使用Func了   委托回顾(d ...

  8. iOS回顾笔记( 02 ) -- 由九宫格布局引发的一系列“惨案”

    html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,bi ...

  9. 九天学会Java,第二天,算术运算

    算术运算 先回顾上次我们提到的编程特性 变量和数据类型,赋值和输出 算术运算 选择结构 循环结构 函数定义,函数调用 变量作用域 栈,程序运行的基石 面向对象 异常处理 语言提供的公用包 第一天我们讲 ...

随机推荐

  1. H3C HDLC概述

  2. js将单个反斜杠转化为斜杠的问题

    var two="https://192.255.255.255:3215/2019/2/26/16/13/b2e8929483c66cefddbe1e49a007e3f8-47358FC3 ...

  3. dotnet core 2.1 使用阶梯编译

    在 dotnet core 2.1 可以使用阶梯编译的方法,从 dotnet framework 开始,在代码的所有方法在第一次进入的时候就需要使用 JIT 进行编译为本机的代码.可以看到代码是在第一 ...

  4. C# 7.2 通过 in 和 readonly struct 减少方法值复制提高性能

    在 C# 7.2 提供了一系列的方法用于方法参数传输的时候减少对结构体的复制从而可以高效使用内存同时提高性能 在开始阅读之前,希望读者对 C# 的值类型.引用类型有比较深刻的认知. 在 C# 中,如果 ...

  5. win10 uwp 解决 SerialDevice.FromIdAsync 返回空

    调用 SerialDevice.FromIdAsync 可能返回空,因为没有设置 package.appmanifest 可以使用端口 打开 package.appmanifest 文件添加下面代码 ...

  6. Python的优缺点、以及解释器种类

    优点 Python起始定位“优雅”.“明确”.“简洁”,工具型语言,上手快,实用性强. 开发效率高,支持库强大,很多功能都有与之对应的最优模块支持. 高级语言,编程时无需考虑内存等底层具体实现. 可移 ...

  7. github 项目搜索技巧-让你更高效精准地搜索项目

    目录 github 搜索技巧 案例 普通搜 搭配技巧搜 限定词 查找某个用户或组织的项目 辅助限定词 还没搞懂的(关于 forks.mirror.issues) 排序(放的是官网的链接) 使用指南 练 ...

  8. python关于MySQL的API -- pymysql模块

    1.模块安装 pip install pymysql 2.执行sql语句 import pymysql #添加数据 conn = pymysql.connect(host='127.0.0.1', p ...

  9. Java8 Date API

    一 .Clock 时钟 Clock类提供了访问当前日期和时间的方法,Clock是时区敏感的,可以用来取代 System.currentTimeMillis() 来获取当前的微秒数.某一个特定的时间点也 ...

  10. centos7搭建hadoop2.10伪分布模式

    1.准备一台Vmware虚拟机,添加hdfs用户及用户组,配置网络见 https://www.cnblogs.com/qixing/p/11396835.html 在root用户下 添加hdfs用户, ...