华为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))
相关推荐
STLearner7 分钟前
KDD 2026 | (2月轮)时空数据(Spatial-Temporal)论文总结时空【下】(人群移动,城市科学(资源调度,)
大数据·人工智能·python·深度学习·机器学习·语言模型·数据挖掘
云和数据.ChenGuang8 分钟前
python sorted函数详细剖析
开发语言·人工智能·windows·python·1024程序员节
木井巳8 分钟前
【动态规划: 路径问题】不同路径
java·算法·leetcode·动态规划
打工仔折腾 AI12 分钟前
AI Agent 工程化实战(二):5 分钟跑通 Deep Agent 并逐层拆解底层链路
java·数据库·人工智能·后端·python·langchain·ai agent 实战
外收内放14 分钟前
FastAPI猜字谜实战(4):让AI主持人开口
开发语言·python·学习·fastapi
云和数据.ChenGuang14 分钟前
Python map() 函数详解:从语法、原理到实战用法
开发语言·人工智能·python·langchain·1024程序员节
CQU_JIAKE20 分钟前
10.25【A】
数据结构·算法
2601_9628857233 分钟前
baostock vs Tushare:哪个免费股票数据 API 更好用?
python
greencherry_38 分钟前
大连模屿石膏课模具配比全固定,调色浇注之外还缺什么?
算法·生活
hahaha601638 分钟前
数字图像锐化
开发语言·python