leetcode刷题——(1)
来源:互联网 发布:千锋java视频全套教程 编辑:程序博客网 时间:2024/06/08 08:34
Complex Number Multiplication
Given two strings representing two complex numbers.
You need to return a string representing their multiplication. Note i2 = -1 according to the definition.
Example 1:
Input: "1+1i", "1+1i"Output: "0+2i"Explanation: (1 + i) * (1 + i) = 1 + i2 + 2 * i = 2i, and you need convert it to the form of 0+2i.
Example 2:
Input: "1+-1i", "1+-1i"Output: "0+-2i"Explanation: (1 - i) * (1 - i) = 1 + i2 - 2 * i = -2i, and you need convert it to the form of 0+-2i.
Note:
- The input strings will not have extra blank.
- The input strings will be given in the form of a+bi, where the integer a and b will both belong to the range of [-100, 100]. And the output should be also in this form.
class Solution(object): def complexNumberMultiply(self, a, b): """ :type a: str :type b: str :rtype: str """ a=a.rstrip("i").split("+") b=b.rstrip("i").split("+") aa=int(a[0]) ab=int(a[1]) ba=int(b[0]) bb=int(b[1]) shishuPart=aa*ba-ab*bb xushuPart=aa*bb+ab*ba return str(shishuPart)+"+"+str(xushuPart)+"i"
Nth Digit
Find the nth digit of the infinite integer sequence 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ...
Note:
n is positive and will fit within the range of a 32-bit signed integer (n < 231).
Example 1:
Input:3Output:3
Example 2:
Input:11Output:0Explanation:The 11th digit of the sequence 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ... is a 0, which is part of the number 10.
class Solution(object): def findNthDigit(self, n): """ :type n: int :rtype: int """ strN=str(n) length=len(strN) if length==1: return n n=n-9 #1位数的总共有9个,减去这9个数 for i in range(2,length+1): if n>i*(10**i-10**(i-1)): n-= i*(10**i-10**(i-1)) else: if n % i == 0: numberIndex=int(n/i) else:numberIndex=int(n/i)+1 charIndex=n%i number=10**(i-1)+numberIndex-1 if charIndex==0: return int(str(number)[charIndex-1]) return int(str(number)[charIndex-1])
Pascal's Triangle
Given numRows, generate the first numRows of Pascal's triangle.
For example, given numRows = 5,
Return
[ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1]]
class Solution(object): def generate(self, numRows): """ :type numRows: int :rtype: List[List[int]] """ if numRows==0: return [] if numRows==1: return [[1]] if numRows==2: return [[1],[1,1]] result=[[1],[1,1]] for i in range(numRows-2): length=len(result) lastElement=result[length-1] toBeAppended=[1] for i in range(length-1): toBeAppended.append(lastElement[i]+lastElement[i+1]) toBeAppended.append(1) result.append(toBeAppended) return result
Base 7
Given an integer, return its base 7 string representation.
Example 1:
Input: 100Output: "202"
Example 2:
Input: -7Output: "-10"
Note: The input will be in range of [-1e7, 1e7].
class Solution(object): def convertToBase7(self, num): """ :type num: int :rtype: str """ result="" isNegtive=False if num < 0: isNegtive=True num=-num Count=1 while 7**Count <= num: Count+=1 for i in range(Count): if num>=7**(Count-i-1): result+=str(int(num/7**(Count-i-1))) num=num%7**(Count-i-1) else: result+="0" if isNegtive: return "-"+result else: return result
Binary Watch
A binary watch has 4 LEDs on the top which represent the hours (0-11), and the 6 LEDs on the bottom represent the minutes (0-59).
Each LED represents a zero or one, with the least significant bit on the right.
For example, the above binary watch reads "3:25".
Given a non-negative integer n which represents the number of LEDs that are currently on, return all possible times the watch could represent.
Example:
Input: n = 1
Return: ["1:00", "2:00", "4:00", "8:00", "0:01", "0:02", "0:04", "0:08", "0:16", "0:32"]
Note:
- The order of output does not matter.
- The hour must not contain a leading zero, for example "01:00" is not valid, it should be "1:00".
- The minute must be consist of two digits and may contain a leading zero, for example "10:2" is not valid, it should be "10:02".
import itertoolsclass Solution(object): def readBinaryWatch(self, num): """ :type num: int :rtype: List[str] 这是一个组合的问题 """ result=[] combinations=list(itertools.combinations(range(0,10),num)) for i in combinations: strTime=list("0000000000") for j in i: strTime[j]=1 hour=0 minute=0 for j in range(6): if strTime[j]==1: minute+=2**j if minute>=60: continue for j in [6,7,8,9]: if strTime[j]==1: hour+=2**(j-6) if hour>=12: continue if minute<10: minute="0"+str(minute) result.append(str(hour)+":"+str(minute)) return result
Longest Substring Without Repeating Characters
Given a string, find the length of the longest substring without repeating characters.
Examples:
Given "abcabcbb"
, the answer is "abc"
, which the length is 3.
Given "bbbbb"
, the answer is "b"
, with the length of 1.
Given "pwwkew"
, the answer is "wke"
, with the length of 3. Note that the answer must be a substring, "pwke"
is a subsequence and not a substring.
class Solution(object): def lengthOfLongestSubstring(self, s): """ :type s: str :rtype: int 一个一个往前 , 如果遇到相同的,如abcb,那么从第一个字符截断,变成cb,再往下找。 """ if s=="": return 0 length=len(s) if length==1: return 1 maxString=1 tmpS="" for i in s: tmpS=tmpS+i setS=set(tmpS) if len(setS)<len(tmpS): #如果这时候遇到重复的字符串了。 repeatCharIndex=tmpS.index(tmpS[len(tmpS)-1]) tmpS=tmpS[repeatCharIndex+1:] setS=set(tmpS) else: maxString=max(maxString,len(tmpS)) return maxString
118. Pascal's Tri
- leetcode刷题——(1)
- LeetCode—数组(1)
- leetcode刷题——
- LeetCode刷题(1)
- Leetcode刷题(1)
- LeetCode刷题(1)
- LeetCode- Bit Manipulation LeetCode总结(1) —— 位运算
- 【LeetCode】LeetCode——第1题:Two Sum
- LeetCode题解——1
- leetcode——1TwoSum
- Leetcode——数论(1)
- LeetCode—数组(2)
- LeetCode—数组(3)
- LeetCode刷题(C++)——Symmetric Tree(Easy)
- LeetCode刷题(C++)——Path Sum(Easy)
- LeetCode刷题(C++)——Reverse Integer(Easy)
- LeetCode刷题(C++)——Palindrome Number(Easy)
- LeetCode刷题(C++)——ZigZag Conversion(Medium)
- LDA通俗理解LDA主题模型
- SpringCloud-Learning -作者:翟永超
- oracle中数据类型number(9,2)的意思
- mysql将一张表的数据内容update至另外一张表
- HTML学习---------1.9 引用标签<q>和<blockquote>
- leetcode刷题——(1)
- spring学习笔记一 spring web.xml文件配置详解
- 第13章练习
- 简单表格-今日小说排行榜
- GroupMetadataManager分析
- Java JFrame常用的布局
- mysql查询所有记录,并去掉重复的记录
- App的启动过程(4)在WMS中注册窗口
- HMM隐马尔可夫模型(HMM)攻略