[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 ...
随机推荐
- Android应用程序资源的编译和打包过程分析
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8744683 我们知道,在一个APK文件中,除了 ...
- Rhythmbox乱码的解决的方法
近期尝试 Listen 和 Banshee 才发现,Rhythmbox 上出现的 mp3乱码问题依然,并且更加严重,想要彻底弄清和解决必须搞清两点,第一, mp3 标签类型和编码,第二,各种播放器对 ...
- css2如何设置全屏背景图片
每次在做一个网站后台登陆页面的时候,当UI给我一张背景是不规律的背景图片,但是在设置为背景时,总会遇到屏幕大小的问题,导致背景图片有可能平铺.这样UI的效果达不到也会很难看. 本来我想用body{ba ...
- Func 委托 和 Action 委托 初步谈论
继上篇EventHandler之后,继续填坑,简单了解下Func<TResult> 委托 和 Action 委托. msdn对于两者的解释: Func<TResult>:封装一 ...
- Code Complete阅读笔记(三)
2015-05-26 628 Code-Tuning Techniques ——Even though a particular technique generally represen ...
- Android 使用monkey自动测试
很简单的一个monkey使用流程: 首先创建一个monkey脚本test.txt,例如一个简单的反复测试拍照功能的脚本: # Start of Script type= user count= 49 ...
- latex 模版
texlive2012 通过 \documentclass[a4paper]{article} %\documentclass[twocolumn]{article} %\usepackage{g ...
- hdu1466 计算直线的交点数
题意: 平面上有n条直线,且无三线共点,问这些直线能有多少种不同交点数. 比如,如果n=2,则可能的交点数量为0(平行)或者1(不平行). 分析: DP 设状态:f[i][j]表示i条直线能否产生j个 ...
- 把EXCEL列号数字变成字母
把Excel 列号数字变成字母 private static string ToName(int index) { if (index < 0) { throw new Exception(&q ...
- C# 导出Excel Aspose.Cells
public void ExportExcel() { Workbook workbook = new Workbook(); //工作簿 workbook.Worksheets.Clear(); w ...