[python语法巩固][leetcode326][Power of Three]
题目大意:
让你判断一个int是否为3的幂;
最简单的思路
C++
class Solution {
public:
bool isPowerOfThree(int n) {
for(long long i=1;i<=n;i=i*3LL)
{
if(i==n) return true;
}
return false;
}
};
Python
第一种写法…很低效..因为不会类似C++的for..
class Solution(object):
def isPowerOfThree(self, n):
"""
:type n: int
:rtype: bool
"""
for x in range(30):
if 3**x==n:
return True;
return False;
第二种写法 类似C++的,但是只用用while实现
Python的缩进真是让人理解不能 空格TAP混用不行??????
需要修改Sublime的设置
class Solution(object):
def isPowerOfThree(self, n):
x=1;
while x <= n:
if x==n :
return True;
x=x*3;
return False;
sublime设置
sublime 默认是tab 缩进,修改成4个空格缩进 “首选项” —>”设置–更多” —>’”特定的语法–用户”
添加如下内容 点击(此处)折叠或打开 {
“tab_size”: 4,
“translate_tabs_to_spaces”: true }
要求不准用循环
1.利用对数函数,再判断是否为整数。
C++
精度误差要控制的很细 1e-10才能过,这样的程序速度快,但是存在一定误差。
注意取整的时候要加一个0.5才是 四舍五入!!!刘书上说过。
class Solution {
public:
bool static isPowerOfThree(int n) {
double a=log(n)/log(3);
printf("%lf\n",a);
int b=(int)(a+0.5);
printf("%d\n",b);
if(abs(a-b)<1e-10) return true;
else return false ;
}
};
Python
round(val,位数) 四舍五入
Python 中math.log() 接收到0会报错
class Solution(object):
def isPowerOfThree(self, n):
if n>0:
a=math.log(n)/math.log(3.0);
else :
a=0.5;
b=round(a,0)
if abs(a-b)<1e-10:
return True;
else:
return False;
终极想法
还有一种想法就是Python打表 switch ,应该是最简单的了。
[python语法巩固][leetcode326][Power of Three]的更多相关文章
- 对 Python 语法不够了解导致的 bug
对 Python 语法不够了解导致的 bug. `in` '20' in '11264,6144,4096,3072,2048,1024,300,30' Out[7]: True a_list = ' ...
- python 笔记2:python语法基础
python语法学习笔记: 1 输入输出 input(),print(). name = input('input your name : ')print('hello ,'+name)print(& ...
- python语法快速入门(1)
http://www.runoob.com/python/python-tutorial.html Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节.类似于PHP和Perl语言 ...
- python语法笔记(四)
1.对象的属性 python一切皆对象,每个对象都可能有多个属性.python的属性有一套统一的管理方案. 属性的__dict__系统 对象的属性可能来自于其类定义,叫做类属性:还可能 ...
- python语法-[with来自动释放对象]
python语法-[with来自动释放对象] http://www.cnblogs.com/itech/archive/2011/01/13/1934779.html 一 with python中的w ...
- wxpython 支持python语法高亮的自定义文本框控件的代码
在研发闲暇时间,把开发过程中比较重要的一些代码做个珍藏,下面的代码内容是关于wxpython 支持python语法高亮的自定义文本框控件的代码,应该是对大家也有用. import keywordimp ...
- Python语法的转义字符
Python语法的转义字符 转义字符 说 明 \ 续行符 \n 换行符 \0 空 \t 水平制表符,用于横向跳到下一制表位 \'' 双引号 \' 单引号 \\ 一个反斜杠 \f 换页 \0dd 八进 ...
- Python语法教程总结规范
Python语法易错点记录 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享. ...
- 初试Python语法小试牛刀之冒泡排序
Python很火,心里很慌,没吃过猪肉,也要见见猪走路. 看了几天Python的语法,大概初步了解了一点点,https://www.liaoxuefeng.com/wiki/0014316089557 ...
随机推荐
- 在Maven的配置文件中,自定义私有仓库地址和设置下载的jar包的保存位置
在Maven的settings.xml,可以设置Maven的私有仓库的地址,还可以设置所下载jar包在自己电脑的保存地址(默认不设置保存在个人文件夹的.m2文件夹下). 1.设置私有仓库地址: < ...
- 用gitolite新建项目,clone后首次push,可能会出现: git: No refs in common and none specified; doing no
用gitolite新建项目,clone后首次push,可能会出现: $ git push No refs in common and none specified; doing nothing ...
- Android 使用图标字体库
首先,在assets资源文件下放入图标字体库. 我这儿采用的是fontawesome-webfont.ttf 然后, 在安卓中加载这个资源文件 Typeface fontFace = Typeface ...
- scrollview不能滚动
1. 图片视图上不能直接滚动,需要设置交互属性为YES _contentView = [[UIImageView alloc]initWithFrame:CGRectMake(0, _headerVi ...
- C#中Thread.Join()的理解
最近在项目中使用多线程,但是对多线程的一些用法和概念还有有些模棱两可,为了搞清楚查阅了一写资料,写下这篇日志加深理解吧. Thread.Join()在MSDN中的解释很模糊:Blocks the ca ...
- 总结前端JQ常用的一些操作手法(慢慢完善)
1.实例化Js一个object对象,把它当做类来用,事例是操作url的参数 function GetRequestCondition() { var url = window.location.hre ...
- UVa1592 数据库(摘)
输入一个n行m列的数据库(1<=n<=10000,1<=m<=10),是否存在两个不同行r1,r2和两个不同列c1,c2,使得这两行和这两行相同(即(r1,c1)和(r2,c1 ...
- (转) Dynamic memory
In the programs seen in previous chapters, all memory needs were determined before program executi ...
- date用法
日常工作中经常使用date这个命令,几乎所有与日期时间相关的操作都会跟这个命令扯上点关系.简单写几条经常使用到的date命令,仅供大家参考. 首先检查一下date的版本,注意如果你用的不是GNU da ...
- TreeSet与HashSet的区别
Set是java中一个不包含重复元素的collection.更正式地说,set 不包含满足 e1.equals(e2) 的元素对 e1 和 e2,并且最多包含一个 null 元素.正如其名称所暗示的, ...