logo资料库

程序代码-1.docx

第1页 / 共226页
第2页 / 共226页
第3页 / 共226页
第4页 / 共226页
第5页 / 共226页
第6页 / 共226页
第7页 / 共226页
第8页 / 共226页
资料共226页,剩余部分请下载后查看
第一章 难度等级★
【例1】反转一个3位整数 难度等级★
3.代码实现
【例2】合并排序数组 难度等级★
3.代码实现
【例3】旋转字符串 难度等级★
3.代码实现
【例4】相对排名 难度等级★
3.代码实现
【例5】二分查找 难度等级★
3.代码实现
【例6】下一个更大的数 难度等级★
3.代码实现
【例7】字符串中的单词数 难度等级★
3.代码实现
【例8】勒索信 难度等级★
3.代码实现
【例9】不重复的两个数 难度等级★
3.代码实现
【例10】双胞胎字符串 难度等级★
3.代码实现
【例11】最接近target的值 难度等级★
3.代码实现
【例12】点积 难度等级★
3.代码实现
【例13】函数运行时间 难度等级★
3.代码实现
【例14】查询区间 难度等级★
1.问题描述
2.问题示例
3.代码实现
4.运行结果
【例15】飞行棋 难度等级★
3.代码实现
【例16】移动石子 难度等级★
3.代码实现
【例17】数组剔除元素后的乘积 难度等级★
3.代码实现
【例18】键盘的一行 难度等级★
3.代码实现
【例19】第n个数位 难度等级★
3.代码实现
【例20】找不同 难度等级★
3.代码实现
【例21】第k个组合 难度等级★
3.代码实现
【例22】平面列表 难度等级★
3.代码实现
【例23】子域名访问计数 难度等级★
2.问题示例
3.代码实现
【例24】最长AB子串 难度等级★
3.代码实现
【例25】删除字符 难度等级★
3.代码实现
【例26】字符串写入的行数 难度等级★
3.代码实现
【例27】独特的摩尔斯编码 难度等级★
3.代码实现
【例28】比较字符串 难度等级★
3.代码实现
【例29】能否转换 难度等级★
3.代码实现
【例30】经典二分查找问题 难度等级★
3.代码实现
【例31】抽搐词 难度等级★
3.代码实现
【例32】排序数组中最接近元素 难度等级★
3.代码实现
【例33】构造矩形 难度等级★
3.代码实现
【例34】两个排序数组合的第k小元素 难度等级★
3.代码实现
【例35】玩具工厂 难度等级★
3.代码实现
【例36】形状工厂 难度等级★
3.代码实现
【例37】二叉树最长连续序列 难度等级★
3.代码实现
【例38】首字母大写 难度等级★
3.代码实现
【例39】7进制 难度等级★
3.代码实现
【例40】查找数组中没有出现的所有数字 难度等级★
3.代码实现
【例41】回旋镖的数量 难度等级★
3.代码实现
【例42】合并排序数组 难度等级★
3.代码实现
【例43】最小路径和 难度等级★
3.代码实现
【例44】大小写转换 难度等级★
3.代码实现
【例45】原子的数量 难度等级★
3.代码实现
【例46】矩阵中的最长递增路径 难度等级★
3.代码实现
【例47】大小写转换 难度等级★
3.代码实现
【例48】水仙花数 难度等级★
3.代码实现
【例49】余弦相似度 难度等级★
3.代码实现
【例50】链表节点计数 难度等级★
3.代码实现
【例51】最高频的K个单词 难度等级★
3.代码实现
【例52】单词的添加与查找 难度等级★
3.代码实现
【例53】石子归并 难度等级★
3.代码实现
【例54】简单计算器 难度等级★
3.代码实现
【例55】数组第二大数 难度等级★
3.代码实现
【例56】二叉树叶子节点之和 难度等级★
3.代码实现
【例57】二叉树的某层节点之和 难度等级★
3.代码实现
【例58】判断尾数 难度等级★
3.代码实现
【例59】两个字符串是变位词 难度等级★
3.代码实现
【例60】最长单词 难度等级★
3.代码实现
【例61】机器人能否返回原点 难度等级★
3.代码实现
【例62】链表倒数第n个节点 难度等级★
3.代码实现
【例63】链表求和 难度等级★
3.代码实现
【例64】删除元素 难度等级★
3.代码实现
【例65】克隆二叉树 难度等级★
3.代码实现
【例66】合并两个排序链表 难度等级★
3.代码实现
【例67】反转整数 难度等级★
3.代码实现
【例68】报数 难度等级★
3.代码实现
【例69】完全二叉树 难度等级★
3.代码实现
【例70】对称二叉树 难度等级★
3.代码实现
【例71】扭转后等价的二叉树 难度等级★
3.代码实现
【例72】岛屿的个数 难度等级★
3.代码实现
【例73】判断是否为平方数之和 难度等级★
3.代码实现
【例74】滑动窗口内数的和 难度等级★
3.代码实现
4.运行结果
【例75】棒球游戏 难度等级★
【例76】硬币摆放 难度等级★
3.代码实现
【例77】字母大小写转换 难度等级★
3.代码实现
【例78】二进制表示中质数个计算置位 难度等级★
3.代码实现
【例79】最少费用的爬台阶方法 难度等级★
3.代码实现
【例80】中心索引 难度等级★
3.代码实现
【例81】词典中最长的单词 难度等级★
3.代码实现
【例82】重复字符串匹配 难度等级★
3.代码实现
【例83】不下降数组 难度等级★
3.代码实现
【例84】最大的回文乘积 难度等级★
3.代码实现
【例85】补数 难度等级★
3.代码实现
【例86】加热器 难度等级★
3.代码实现
【例87】将火柴摆放成正方形 难度等级★
3.代码实现
【例88】可怜的猪 难度等级★
3.代码实现
【例89】循环数组中的环 难度等级★
3.代码实现
【例90】分饼干 难度等级★
3.代码实现
【例91】翻转字符串中的元音字母 难度等级★
3.代码实现
【例92】翻转字符串 难度等级★
3.代码实现
【例93】使数组元素相同的最少步数 难度等级★
3.代码实现
【例94】加油站 难度等级★
3.代码实现
【例95】春游 难度等级★
3.代码实现
【例96】合法数组 难度等级★
3.代码实现
【例97】删除排序数组中的重复数字 难度等级★
3.代码实现
【例98】字符串的不同排列 难度等级★
3.代码实现
【例99】全排列 难度等级★
3.代码实现
【例100】带重复元素的排列 难度等级★
3.代码实现
第二章 难度等级★★
【例101】插入区间 难度等级★★
3.代码实现
【例102】N皇后问题 难度等级★★
3.代码实现
【例103】主元素 难度等级★★
3.代码实现
【例104】字符大小写排序 难度等级★★
3.代码实现
【例105】上一个排列 难度等级★★
3.代码实现
【例106】下一个排列 难度等级★★
3.代码实现
【例107】二叉树的层次遍历 难度等级★★
3.代码实现
【例108】最长公共子串 难度等级★★
3.代码实现
【例109】最近公共祖先 难度等级★★
3.代码实现
【例110】k数和 难度等级★★
3.代码实现
【例111】有序链表转换为二分查找树 难度等级★★
3.代码实现
【例112】最长连续序列 难度等级★★
3.代码实现
【例113】背包问题 难度等级★★
3.代码实现
【例114】拓扑排序 难度等级★★
3.代码实现
【例115】克隆图 难度等级★★
3.代码实现
【例116】不同的二叉查找树 难度等级★★
3.代码实现
【例117】汉诺塔 难度等级★★
3.代码实现
【例118】图中两个点之间的路线 难度等级★★
3.代码实现
【例119】丢失的第一个正整数 难度等级★★
3.代码实现
【例120】寻找缺失的数 难度等级★★
3.代码实现
【例121】排列序号I 难度等级★★
3.代码实现
【例122】排列序号II 难度等级★★
3.代码实现
【例123】最多有k个不同字符的最长子字符串 难度等级★★
3.代码实现
【例124】第k个排列 难度等级★★
3.代码实现
【例125】数飞机 难度等级★★
3.代码实现
【例126】格雷编码 难度等级★★
3.代码实现
【例127】迷你Cassandra 难度等级★★
3.代码实现
【例128】网络日志 难度等级★★
3.代码实现
【例129】栅栏染色 难度等级★★
3.代码实现
【例130】房屋染色 难度等级★★
3.代码实现
【例131】去除重复元素 难度等级★★
3.代码实现
【例132】左填充 难度等级★★
3.代码实现
【例133】负载均衡器 难度等级★★
3.代码实现
【例134】两数和的最接近值 难度等级★★
3.代码实现
【例135】打劫房屋 难度等级★★
3.代码实现
【例136】左旋右旋迭代器 难度等级★★
3.代码实现
【例137】N数组第K大元素 难度等级★★
3.代码实现
【例138】前K大数 难度等级★★
3.代码实现
【例139】计数型布隆过滤器 难度等级★★
3.代码实现
【例140】字符计数 难度等级★★
3.代码实现
【例141】最长重复子序列 难度等级★★
3.代码实现
【例142】僵尸矩阵 难度等级★★
3.代码实现
【例143】摊平二维向量 难度等级★★
3.代码实现
【例144】第K大的元素 难度等级★★
3.代码实现
【例145】两数和小于或等于目标值 难度等级★★
3.代码实现
【例146】两数差等于目标值 难度等级★★
3.代码实现
【例147】骑士的最短路线 难度等级★★
3.代码实现
【例148】K个最近的点 难度等级★★
3.代码实现
【例149】优秀成绩 难度等级★★
3.代码实现
【例150】二叉树的最长连续子序列I 难度等级★★
3.代码实现
【例151】二叉树的最长连续子序列II 难度等级★★
3.代码实现
【例152】课程表 难度等级★★
3.代码实现
【例153】安排课程 难度等级★★
3.代码实现
【例 154】单词表示数字 难度等级★★
3.代码实现
【例155】最大子序列的和 难度等级★★
3.代码实现
【例156】移除子串 难度等级★★
3.代码实现
【例157】数组划分 难度等级★★
3.代码实现
【例158】矩形重叠 难度等级★★
3.代码实现
【例159】最长回文串 难度等级★★
3.代码实现
【例160】最大子树 难度等级★★
3.代码实现
【例161】最小生成树 难度等级★★
3.代码实现
【例162】骑士的最短路径 难度等级★★
3.代码实现
【例163】最大矩阵 难度等级★★
3.代码实现
【例164】二叉树的最大节点 难度等级★★
3.代码实现
【例165】寻找重复的数 难度等级★★
3.代码实现
【例166】拼字游戏 难度等级★★
3.代码实现
【例167】132模式识别 难度等级★★
3.代码实现
【例168】检查缩写字 难度等级★★
3.代码实现
【例169】一次编辑距离 难度等级★★
3.代码实现
【例170】数据流滑动窗口平均值 难度等级★★
3.代码实现
【例171】最长绝对文件路径 难度等级★★
3.代码实现
【例172】识别名人 难度等级★★
3.代码实现
【例173】第一个独特字符位置 难度等级★★
3.代码实现
【例174】子串字谜 难度等级★★
3.代码实现
【例175】单词缩写集 难度等级★★
3.代码实现
【例176】二叉树翻转 难度等级★★
3.代码实现
【例177】 二叉树垂直遍历 难度等级★★
3.代码实现
【例178】因式分解 难度等级★★
3.代码实现
【例179】Insert Delete GetRandom O(1) 难度等级★★
3.代码实现
【例180】编码和解码字符串 难度等级★★
3.代码实现
【例181】猜数游戏 难度等级★★
3.代码实现
【例182】数1的个数 难度等级★★
3.代码实现
【例183】平面范围求和 -不可变矩阵 难度等级★★
3.代码实现
【例184】猜数游戏 难度等级★★
3.代码实现
【例185】最长的回文序列 难度等级★★
3.代码实现
【例186】1和0 难度等级★★
3.代码实现
【例187】预测能否胜利 难度等级★★
3.代码实现
【例188】循环单词 难度等级★★
3.代码实现
【例189】最大子数组之和为k 难度等级★★
3.代码实现
【例190】等差切片 难度等级★★
3.代码实现
【例191】2D战舰 难度等级★★
3.代码实现
【例192】连续数组 难度等级★★
3.代码实现
【例193】带有冷却时间的买卖股票最佳时间 难度等级★★
3.代码实现
【例194】小行星的碰撞 难度等级★★
3.代码实现
【例195】扩展弹性词 难度等级★★
3.代码实现
【例196】找到最终的安全状态 难度等级★★
3.代码实现
【例197】使序列递增的最小交换次数 难度等级★★
3.代码实现
【例198】所有可能的路径 难度等级★★
3.代码实现
【例199】合法的井字棋状态 难度等级★★
3.代码实现
【例200】满足要求的子串个数 难度等级★★
3.代码实现
【例201】多米诺和三格骨牌铺瓦问题 难度等级★★
3.代码实现
【例202】逃离幽灵 难度等级★★
3.代码实现
【例203】寻找最便宜的航行旅途(最多经过k个中转站)难度等级★★
1.问题描述
2.问题示例
3.代码实现
4.运行结果
【例204】图是否可以被二分 难度等级★★
3.代码实现
【例205】森林中的兔子 难度等级★★
3.代码实现
【例206】最大分块排序 难度等级★★
3.代码实现
【例207】分割标签 难度等级★★
3.代码实现
【例208】网络延迟时间 难度等级★★
3.代码实现
【例209】洪水填充 难度等级★★
3.代码实现
【例210】映射配对之和 难度等级★★
3.代码实现
【例211】最长升序子序列的个数 难度等级★★
3.代码实现
【例212】最大的交换 难度等级★★
3.代码实现
【例213】将数组拆分成含有连续元素的子序列 难度等级★★
3.代码实现
【例214】Dota2参议院 难度等级★★
3.代码实现
【例215】合法的三角数 难度等级★★
3.代码实现
【例216】在系统中找到重复文件 难度等级★★
3.代码实现
【例217】两个字符串的删除操作 难度等级★★
3.代码实现
【例218】下一个更大的元素 难度等级★★
3.代码实现
【例219】最优除法 难度等级★★
3.代码实现
【例220】通过删除字母匹配到字典里最长单词 难度等级★★
3.代码实现
【例221】寻找树中最左下结点的值 难度等级★★
3.代码实现
【例222】出现频率最高的子树和 难度等级★★
3.代码实现
【例223】寻找BST的modes 难度等级★★
3.代码实现
【例224】对角线遍历 难度等级★★
3.代码实现
【例225】提莫攻击 难度等级★★
3.代码实现
【例226】目标和 难度等级★★
3.代码实现
【例227】升序子序列 难度等级★★
3.代码实现
【例228】神奇字符串 难度等级★★
3.代码实现
【例229】爆破气球的最小箭头数 难度等级★★
3.代码实现
【例230】查找数组中的所有重复项 难度等级★★
3.代码实现
【例231】最小基因变化 难度等级★★
3.代码实现
【例232】替换后的最长重复字符 难度等级★★
3.代码实现
【例233】从英文中重建数字 难度等级★★
3.代码实现
【例234】数组中两个数字的最大异或 难度等级★★
3.代码实现
【例235】根据身高重排队列 难度等级★★
3.代码实现
【例236】左叶子的和 难度等级★★
3.代码实现
【例237】移除K位 难度等级★★
3.代码实现
【例238】轮转函数 难度等级★★
3.代码实现
【例239】字符至少出现K次的最长子串 难度等级★★
3.代码实现
【例240】消除游戏 难度等级★★
3.代码实现
【例241】有序矩阵中的第K小元素 难度等级★★
3.代码实现
【例242】超级幂次 难度等级★★
3.代码实现
【例243】水罐问题 难度等级★★
3.代码实现
【例244】计算不同数字整数的个数 难度等级★★
3.代码实现
4.运行结果
【例245】最大乘积路径 难度等级★★
3.代码实现
【例246】矩阵找数 难度等级★★
3.代码实现
【例247】路径数计算 难度等级★★
3.代码实现
【例248】卡牌游戏 难度等级★★
3.代码实现
【例249】词频统计 难度等级★★
3.代码实现
【例250】查找子数组 难度等级★★
3.代码实现
【例251】最小子矩阵 难度等级★★
3.代码实现
【例252】最佳购物计划 难度等级★★
3.代码实现
【例253】询问冷却时间 难度等级★★
3.代码实现
【例254】树上最长路径 难度等级★★
3.代码实现
【例255】取数游戏 难度等级★★
3.代码实现
【例256】数组求和 难度等级★★
3.代码实现
【例257】最短短语 难度等级★★
3.代码实现
【例258】频率最高的词 难度等级★★
3.代码实现
【例259】判断三角形 难度等级★★
3.代码实现
【例260】最大矩阵边界和 难度等级★★
3.代码实现
【例261】卡牌游戏 难度等级★★
3.代码实现
【例262】停车问题 难度等级★★
3.代码实现
【例263】爬楼梯 难度等级★★
3.代码实现
【例264】最小字符串 难度等级★★
3.代码实现
【例265】目的地的最短路径 难度等级★★
3.代码实现
【例266】毒药测试 难度等级★★
3.代码实现
【例267】社交网络 难度等级★★
3.代码实现
【例268】前K高的基点 难度等级★★
3.代码实现
【例269】寻找最长01子串 难度等级★★
3.代码实现
【例270】合法字符串 难度等级★★
3.代码实现
【例271】叶节点的和 难度等级★★
3.代码实现
【例272】转换字符串 难度等级★★
3.代码实现
【例273】最少按键次数 难度等级★★
3.代码实现
【例274】二分查找 难度等级★★
3.代码实现
【例275】全排列 难度等级★★
3.代码实现
【例276】最小路径和 难度等级★★
3.代码实现
【例277】最长路径序列 难度等级★★
3.代码实现
【例278】背包问题2 难度等级★★
3.代码实现
【例279】哈希函数 难度等级★★
3.代码实现
【例280】第一个只出现一次的字符 难度等级★★
3.代码实现
【例281】空格替换 难度等级★★
3.代码实现
【例282】字符串压缩 难度等级★★
3.代码实现
【例283】数组的最大值 难度等级★★
3.代码实现
【例284】无序链表的重复项删除 难度等级★★
3.代码实现
【例285】在O(1)时间复杂度删除链表节点 难度等级★★
3.代码实现
【例286】将数组重新排序以构造最小值 难度等级★★
3.代码实现
【例287】两个链表的交叉 难度等级★★
3.代码实现
【例288】螺旋矩阵 难度等级★★
3.代码实现
【例289】三角形计数 难度等级★★
3.代码实现
【例290】买卖股票的最佳时机 难度等级★★
3.代码实现
【例291】加一 难度等级★★
3.代码实现
【例292】炸弹袭击 难度等级★★
3.代码实现
【例293】组合总和 IV 难度等级★★
3.代码实现
【例294】向循环有序链表插入节点 难度等级★★
3.代码实现
【例295】大岛的数量 难度等级★★
3.代码实现
【例296】最短回文串 难度等级★★
3.代码实现
【例297】不同的路径 难度等级★★
3.代码实现
【例298】分割字符串 难度等级★★
3.代码实现
【例299】缺失的第一个素数 难度等级★★
3.代码实现
【例300】单词拆分 难度等级★★
3.代码实现
第一章 难度等级★ 【例 1】反转一个 3 位整数 难度等级★ 3.代码实现 class Solution: #参数 number: 一个三位整数 #返回值: 反转后的数字 def reverseInteger(self, number): h = int(number/100) t = int(number%100/10) z = int(number%10) return (100*z+10*t+h) #主函数 if __name__ == '__main__': solution = Solution() num = 123 ans = solution.reverseInteger(num) print("输入:", num) print("输出:", ans) 【例 2】合并排序数组 难度等级★ 3.代码实现 class Solution: #参数 A: 有序整数数组 A #参数 B: 有序整数数组 B #返回:一个新的有序整数数组 def mergeSortedArray(self, A, B): i, j = 0, 0 C = [] while i < len(A) and j < len(B): if A[i] < B[j]: C.append(A[i]) i += 1 else: C.append(B[j]) j += 1
while i < len(A): C.append(A[i]) i += 1 while j < len(B): C.append(B[j]) j += 1 return C #主函数 #主函数 if __name__ == '__main__': A = [1,4] B = [1,2,3] D = [1,2,3,4] E = [2,4,5,6] solution = Solution() print("输入:", A, " ", B) print("输出:", solution.mergeSortedArray(A,B)) print("输入:", D, " ", E) print("输出:", solution.mergeSortedArray(D,E)) 【例 3】旋转字符串 难度等级★ 3.代码实现 class Solution: #参数 s:字符列表 #参数 offset:整数 #返回值:无 def rotateString(self, s, offset): if len(s) > 0: offset = offset % len(s) temp = (s + s)[len(s) - offset : 2 * len(s) - offset] for i in range(len(temp)): s[i] = temp[i] #主函数 if __name__ == '__main__': s = ["a","b","c","d","e","f","g"] offset = 3 solution = Solution() solution.rotateString(s, offset) print("输入:s =", ["a","b","c","d","e","f","g"], " ", "offset =",offset) print("输出:s =", s)
【例 4】相对排名 难度等级★ 3.代码实现 class Solution: #参数 nums 为整数列表 #返回列表 def findRelativeRanks(self, nums): score = {} for i in range(len(nums)): score[nums[i]] = i sortedScore = sorted(nums, reverse=True) answer = [0] * len(nums) for i in range(len(sortedScore)): res = str(i + 1) if i == 0: res = 'Gold Medal' if i == 1: res = 'Silver Medal' if i == 2: res = 'Bronze Medal' answer[score[sortedScore[i]]] = res return answer #主函数 if __name__ == '__main__': num = [5,4,3,2,1] s = Solution() print("输入为:",num) print("输出为:",s.findRelativeRanks(num)) 【例 5】二分查找 难度等级★ 3.代码实现 class Solution: #参数 nums: 整数数组 #参数 target: 要查找的目标数字 #返回值:目标数字的第一个位置,从 0 开始 def binarySearch(self, nums, target): return self.search(nums, 0, len(nums) - 1, target) def search(self, nums, start, end, target): if start > end: return -1
mid = (start + end)//2 if nums[mid] > target: return self.search(nums, start, mid, target) if nums[mid] == target: return mid if nums[mid] < target: return self.search(nums, mid, end, target) #主函数 if __name__ == '__main__': my_solution = Solution() nums = [1,2,3,4,5,6] target = 3 targetIndex = my_solution.binarySearch(nums, target) print("输入:nums =", nums, " ", "target =",target) print("输出:",targetIndex) 【例 6】下一个更大的数 难度等级★ 3.代码实现 class Solution: #参数 nums1 为整数数组 #参数 nums2 为整数数组 #返回整数数组 def nextGreaterElement(self, nums1, nums2): answer = {} stack = [] for x in nums2: while stack and stack[-1] < x: answer[stack[-1]] = x del stack[-1] stack.append(x) for x in stack: answer[x] = -1 return [answer[x] for x in nums1] #主函数 if __name__ == '__main__': s = Solution() nums1 = [4,1,2] nums2 = [1,3,4,2] print("输入 1 为:",nums1) print("输入 2 为:",nums2) print("输出为 :",s.nextGreaterElement(nums1,nums2))
【例 7】字符串中的单词数 难度等级★ 3.代码实现 class Solution: #参数 s 为字符串 #返回整数 def countSegments(self, s): res = 0 for i in range(len(s)): if s[i] != ' ' and (i == 0 or s[i - 1] == ' '): res += 1 return res #主函数 if __name__ == '__main__': s = Solution() n = "Hello, my name is John" print("输入为:",n) print("输出为:",s.countSegments(n)) 【例 8】勒索信 难度等级★ 3.代码实现 class Solution: """ 参数 ransomNote 为字符串 参数 magazine 为字符串 返回布尔类型 """ def canConstruct(self, ransomNote, magazine): arr = [0] * 26 for c in magazine: arr[ord(c) - ord('a')] += 1 for c in ransomNote: arr[ord(c) - ord('a')] -= 1 if arr[ord(c) - ord('a')] < 0: return False return True #主函数 if __name__ == '__main__': s = Solution() ransomNote = "aa"
magazine = "aab" print("输入勒索信为:",ransomNote) print("输入杂志内容:",magazine) print("输出为:",s.canConstruct(ransomNote,magazine)) 【例 9】不重复的两个数 难度等级★ 3.代码实现 #参数 arr 是输入的待查数组 #返回值是两个值的列表,内容没有重复的 class Solution: def theTwoNumbers(self, a): ans = [0, 0] for i in a: ans[0] = ans[0] ^ i c = 1 while c & ans[0] != c: c = c << 1 for i in a: if i & c == c: ans[1] = ans[1] ^ i ans[0] = ans[0] ^ ans[1] return ans if __name__ == '__main__': arr = [1, 2, 5, 1] solution = Solution() print(" 数组为:", arr) print(" 两个没有重复的数字是:", solution.theTwoNumbers(arr)) 【例 10】双胞胎字符串 难度等级★ 3.代码实现 #参数 s 和 t 是一对字符串 #返回值是个字符串,能否根据规则转换 class Solution: def isTwin(self, s, t): if len(s) != len(t): return "No" oddS = [] evenS = [] oddT = []
evenT = [] for i in range(len(s)): if i & 1: oddS.append(s[i]) oddT.append(t[i]) else : evenS.append(s[i]) evenT.append(t[i]) oddS.sort() oddT.sort() evenS.sort() evenT.sort() for i in range (len(oddS)) : if oddS[i] != oddT[i]: return "No" for i in range (len(evenS)) : if evenS[i] != evenT[i]: return "No" return "Yes" if __name__ == '__main__': s="abcd" t="cdab" solution = Solution() print(" s 与 t 分别为:", s, t) print(" 是否:", solution.isTwin(s, t)) 【例 11】最接近 target 的值 难度等级★ 3.代码实现 #参数 array 是输入列表 #参数 target 是目标值 #返回值是整数 class Solution: def closestTargetValue(self, target, array): n = len(array) if n < 2: return -1 array.sort() diff = 0x7fffffff left = 0 right = n - 1 while left < right: if array[left] + array[right] > target:
right -= 1 else: diff = min(diff, target - array[left] - array[right]) left += 1 if diff == 0x7fffffff: return -1 else: return target - diff if __name__ == '__main__': array = [1,3,5,11,7] target = 15 solution = Solution() print(" 输入数组为:", array,"目标值为:", target) print(" 最近可以得到值为:", solution.closestTargetValue(target, array)) 【例 12】点积 难度等级★ 3.代码实现 #参数 A 和 B 是输入列表 #返回值是个整数,是点积 class Solution: def dotProduct(self, A, B): if len(A) == 0 or len(B) == 0 or len(A) != len(B): return -1 ans = 0 for i in range(len(A)): ans += A[i] * B[i] return ans if __name__ == '__main__': A = [1,1,1] B = [2,2,2] solution = Solution() print(" A 与 B 分别为:", A, B) print(" 点积为:", solution.dotProduct(A, B)) 【例 13】函数运行时间 难度等级★ 3.代码实现 #参数 s 为输入原始字符串 #返回值是个字符串,意为每个名字的函数运行了多久 class Solution:
分享到:
收藏