面试宝典_Python.常规算法.0001.在圆圈和框框分别填入1~8数字各一次?
2016-12-24 14:15
651 查看
面试题目:
解题思路:
1. 总共8个位置,只要2个圈圈之差等于框框即可,注意倒数第3个数还要和第1个数字运算才算结束,所以可以先生成排列组合然后再通过分片偏移来获取符合条件的结果.
具体实现:
解题思路:
1. 总共8个位置,只要2个圈圈之差等于框框即可,注意倒数第3个数还要和第1个数字运算才算结束,所以可以先生成排列组合然后再通过分片偏移来获取符合条件的结果.
具体实现:
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Date : 2016-12-24 12:19:01 # @Author : 李满满 (xmdevops@vip.qq.com) # @Link : http://xmdevops.blog.51cto.com/ # @Version : $Id$ from __future__ import absolute_import # 说明: 导入公共模块 import pprint import itertools # 说明: 导入其它模块 def calculation(max_num): result = [] combinations = itertools.permutations( xrange(1, max_num + 1), max_num ) for item in combinations: flag = True for index in range(0, max_num, 2): x = item[index] y = item[index + 1] z = item[0] if index == max_num - 2 else item[index + 2] if abs(z - x) != y: flag = False break if flag: result.append(item) return result if __name__ == '__main__': result = calculation(8) pprint.pprint(result)
相关文章推荐
- 面试宝典_Python.常规算法.0002.输出任意两个字符串中最长公共子串?
- 面试宝典_Python.常规算法.0003.用Python去实现一个扁平化的字典?
- 面试算法(四十五)圆圈中最后剩下的数字
- 【LeetCode-面试算法经典-Java实现】【136-Single Number(仅仅出现一次的数字)】
- 【LeetCode-面试算法经典-Java实现】【136-Single Number(只出现一次的数字)】
- 微软等数据结构+算法面试100题(30)--只出现一次的数字
- 【LeetCode-面试算法经典-Java实现】【137-Single Number II(只字出一次的数字II)】
- leetcode:Remove Duplicates from Sorted Array II (允许重复一次,去掉数组多余数字)【面试算法题】
- 面试算法(四十)数组中只出现一次的数字
- 数组中只出现一次的数字[算法]
- Console-算法[foreach,if]-一输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数
- [面试] 找出数组中两个只出现一次的数字找出这两个只出现一次的数字
- 程序员面试题精选100题(63)-数组中三个只出现一次的数字[算法]
- 数组中只出现一次的数字[算法]
- 程序员面试题精选100题(34)-数组中只出现一次的数字[算法]
- 高级开发人员面试宝典-算法
- 微软面试之34 找出数组中两个只出现一次的数字 与 找出数组中一个只出现一次的数字
- 圆圈中最后剩下的数字[算法]
- leetcode:Palindrome Number (判断数字是否回文串) 【面试算法题】
- 程序员面试100题(算法)之找出数组中两个只出现一次的数字(位运算实现)