我又来了!!!,这个算法的更新力度会保持到一天至少一更,如果当日未更会第二天补更,算法来源于需求,OJ,Github等。 实现一个算法:识别一个字符串中,是否包含唯一的字符。 class UniqueChars(object): # 定义一个类 def has_unique_chars(self, string): # 我们就认为就参数就一个串 if string is None: return False return len(set(string)) == len(string) # 精华的部分,使用了集合的特性
a = UniqueChars() a.has_unique_chars("12223")
结果
len(set(string)) == len(string) 核心的代码就是这样,将串转为set,接着与原本的长度来比较,结束运行。 Fizz Buzz 经典问题 给定一个整数 num,从 1 到 num 按照下面的规则返回每个数:
class Solution(object): def fizz_buzz(self, num): if num is None: raise TypeError('num cannot be None') if num < 1: raise ValueError('num cannot be less than one') results = [] for i in range(1, num + 1): if i % 3 == 0 and i % 5 == 0: results.append('FizzBuzz') elif i % 3 == 0: results.append('Fizz') elif i % 5 == 0: results.append('Buzz') else: results.append(str(i)) return results
Solu = Solution() Solu.fizz_buzz(89)
直接看代码,很是简单 先对传入参数进行判断 要建立一个存放结果的列表,接着直接上循环来进行遍历,注意基础的and使用,里面用str[i]来进行了数字得输出。 输出得结果 反转一个串得所有字符: class ReverseString(object): def reverse(self, chars): if chars: size = len(chars) for i in range(size // 2): chars[i], chars[size - 1 - i] = \ chars[size - 1 - i], chars[i] return chars
str = ReverseString() str.reverse(['a', 'b', 'c'])
先看结果 if chars: size = len(chars) for i in range(size // 2): chars[i], chars[size - 1 - i] = chars[size - 1 - i], chars[i] return chars 核心代码在这里 因为Py交换变量不用中间变量,这里直接交换了 |
|