华为OD-分积木/分苹果

题目描述

哥哥弟弟分一堆积木,每块积木重量不同。弟弟要求平分两组,每组数量可以不同但总重量必须相等。

然而弟弟只会二进制并且加法不进位。例如三块积木 3,5,6 分成两组 [3] 和 [5,6]

弟弟认为 5(二进制1001)加上6(二进制1010)是0011:

1001

1010


0011

然后 3 的二进制也是 0011,所以弟弟认为两组积木等重,接受这种分配方案。哥哥实际能分到 5+6=11 块积木。

要求输出哥哥能拿的最大实际重量。如果给定的积木没法按弟弟视角分成重量相等的两组,就输出'NO'。

示例一

输入

复制代码
5,6,3

输出

复制代码
11

代码实现

python 复制代码
# coding:utf-8
# 分积木/分苹果
# https://zhuanlan.zhihu.com/p/521401344?utm_id=0
# https://www.nowcoder.com/discuss/353159159166214144


class Solution:
    def allocateBlock(self, s):
        aweight = 0
        s = list(map(int, s))
        for i in range(len(s)):
            aweight = aweight ^ s[i]
        if aweight == 0:
            s.sort(reverse=True)
            s.pop()
            return sum(s)
        return -1


if __name__ == '__main__':
    s = list(input('input:').split(' '))
    solution = Solution()
    print(solution.allocateBlock(s))
相关推荐
晓风残月淡1 小时前
JVM字节码与类的加载(二):类加载器
jvm·python·php
西柚小萌新3 小时前
【深入浅出PyTorch】--上采样+下采样
人工智能·pytorch·python
未来之窗软件服务4 小时前
自己写算法(九)网页数字动画函数——东方仙盟化神期
前端·javascript·算法·仙盟创梦ide·东方仙盟·东方仙盟算法
豐儀麟阁贵4 小时前
基本数据类型
java·算法
shut up5 小时前
LangChain - 如何使用阿里云百炼平台的Qwen-plus模型构建一个桌面文件查询AI助手 - 超详细
人工智能·python·langchain·智能体
宝贝儿好6 小时前
【python】第五章:python-GUI编程
python·pyqt
乐迪信息6 小时前
乐迪信息:基于AI算法的煤矿作业人员安全规范智能监测与预警系统
大数据·人工智能·算法·安全·视觉检测·推荐算法
闲人编程6 小时前
从多个数据源(CSV, Excel, SQL)自动整合数据
python·mysql·数据分析·csv·存储·数据源·codecapsule
hsjkdhs7 小时前
C++之多层继承、多源继承、菱形继承
开发语言·c++·算法
B站_计算机毕业设计之家7 小时前
推荐系统实战:python新能源汽车智能推荐(两种协同过滤+Django 全栈项目 源码)计算机专业✅
大数据·python·django·汽车·推荐系统·新能源·新能源汽车