【力扣算法06】之 _2544_ 交替数字和- python

这篇具有很好参考价值的文章主要介绍了【力扣算法06】之 _2544_ 交替数字和- python。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题描述

【力扣算法06】之 _2544_ 交替数字和- python,python案例分析归纳,算法,leetcode,python,数字计算,算法思路分析

给你一个正整数 n 。n 中的每一位数字都会按下述规则分配一个符号:
最高有效位 上的数字分配到 正 号。
剩余每位上数字的符号都与其相邻数字相反。
返回所有数字及其对应符号的和。

【力扣算法06】之 _2544_ 交替数字和- python,python案例分析归纳,算法,leetcode,python,数字计算,算法思路分析

示例1

输入:n = 521
输出:4
解释:(+5) + (-2) + (+1) = 4

示例 2

输入:n = 111
输出:1
解释:(+1) + (-1) + (+1) = 1

示例 3

输入:n = 886996
输出:0
解释:(+8) + (-8) + (+6) + (-9) + (+9) + (-6) = 0

提示

  • 1 <= n <= 109

思路分析

【力扣算法06】之 _2544_ 交替数字和- python,python案例分析归纳,算法,leetcode,python,数字计算,算法思路分析

  • 这个问题要求根据一定规则给定正整数 n 中的每一位数字分配一个符号,并计算所有数字及其对应符号的和。

  • 首先,我们将正整数 n 转换为字符串,这样方便逐位处理。然后,我们需要遍历每一位数字,并根据规则确定它的符号。

  • 在遍历过程中,我们可以使用一个变量 result 来保存结果,并初始化为 0。另外,我们还需要一个变量 sign 来保存当前位的符号,初始值设为 1。

  • 接下来,我们可以使用一个循环来遍历每一位数字。对于每一位数字,我们需要根据其相邻数字的符号来确定自己的符号。当位于最高有效位时,我们将其符号设为正号;而对于其他位的情况,我们将其符号与相邻数字的符号相反。

  • 将当前位的数字乘以符号,并累加到 result 中。完成遍历后,result 就是我们要求的所有数字及其对应符号的和。

  • 最后,我们返回 result 即可作为最终的结果。

  • 这样就完成了对给定正整数 n 的每一位数字求符号和的算法。可以使用上述提供的代码来实现和验证该算法。

代码分析

【力扣算法06】之 _2544_ 交替数字和- python,python案例分析归纳,算法,leetcode,python,数字计算,算法思路分析

class Solution(object):
    def alternateDigitSum(self, n):

上述代码定义了一个名为 Solution 的类,并在其中定义了一个名为 alternateDigitSum 的方法。这个方法接受一个参数 n,表示正整数。

digits = str(n)

将正整数 n 转换为字符串类型,以便逐位处理。将转换后的字符串赋值给变量 digits

result = 0
sign = 1

初始化结果变量 result 和符号变量 sign,初始值分别为 0 和 1。

for i in range(len(digits)):

使用 range 函数遍历 digits 字符串中的每一个索引值 i

if i == 0:
    sign = 1
else:
    sign *= -1

如果当前索引 i 是最高有效位(即索引为 0),则将 sign 的值设为 1,表示正号。否则,将 sign 的值乘以 -1,表示与前一个数字的符号相反。

result += int(digits[i]) * sign

将当前索引 i 对应的字符转换为整数,并乘以 sign,然后加到 result 中。

return result

返回最终的结果 result

整体来看,该算法逐位遍历给定正整数的每一位数字,根据规则确定每个数字的符号,并将符号与数字相乘后累加到结果中。最终返回所有数字及其对应符号的和。

创建 Solution 类的对象,并调用 alternateDigitSum 方法来计算给定数值 n 的结果。

完整代码

class Solution(object):

     def alternateDigitSum(self,n):
        digits = str(n)  # 将正整数 n 转换为字符串类型,以便逐位处理

        result = 0  # 初始化结果变量为 0
        sign = 1  # 初始化符号变量为 1(表示正号)

        for i in range(len(digits)):  # 遍历字符串 digits 中的每一个索引值 i
            if i == 0:
                sign = 1  # 如果是最高有效位(即索引为 0),则将符号设为正号
            else:
                sign *= -1  # 否则,将符号与前一个数字的符号相反

            result += int(digits[i]) * sign  # 将当前位的数字乘以符号,并累加到结果中

        return result  # 返回最终结果


运行示例

# 示例用法
solution = Solution()
print(solution.alternateDigitSum(521))
print(solution.alternateDigitSum(111))
print(solution.alternateDigitSum(886996))

效果截图

【力扣算法06】之 _2544_ 交替数字和- python,python案例分析归纳,算法,leetcode,python,数字计算,算法思路分析

完结

【力扣算法06】之 _2544_ 交替数字和- python,python案例分析归纳,算法,leetcode,python,数字计算,算法思路分析文章来源地址https://www.toymoban.com/news/detail-553571.html

到了这里,关于【力扣算法06】之 _2544_ 交替数字和- python的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 第七篇【传奇开心果系列】Python自动化办公库技术点案例示例:深度解读数据分析数据挖掘的几个重要算法为代表的核心技术

    在对大学生数据分析和数据挖掘时,会接触到许多重要的算法,这些算法代表了数据分析和数据挖掘领域中的一些核心技术,大学生可以通过学习和实践这些算法为代表的核心技术来提升自己的数据分析能力和数据挖掘探索分析能力。深入理解这些算法为代表的核心技术的原

    2024年03月19日
    浏览(43)
  • python案例讲解视频,python简单案例分析

    大家好,给大家分享一下python案例讲解视频,很多人还不知道这一点。下面详细解释一下。现在让我们来看看!   前言 Python 是一种面向对象、解释型、弱类型的脚本语言,它也是一种功能强大而完善的通用型语言。 相比其他编程语言(比如 Java),Python 代码非常简单,上手

    2024年04月11日
    浏览(34)
  • 入门力扣自学笔记272 C++ (题目编号:2544)

    2544. 交替数字和 给你一个正整数 n 。n 中的每一位数字都会按下述规则分配一个符号: 最高有效位 上的数字分配到 正 号。 剩余每位上数字的符号都与其相邻数字相反。 返回所有数字及其对应符号的和。 输入:n = 521 输出:4 解释:(+5) + (-2) + (+1) = 4 输入:n = 111 输出:1 解

    2024年02月13日
    浏览(26)
  • 大数据分析案例-基于随机森林算法构建人口普查分析模型

    🤵‍♂️ 个人主页:@艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏 📂加关注+ 喜欢大数据分析项目的小伙伴,希望可以多多支持该系列的其他文章 大数据分析案例合集

    2024年02月01日
    浏览(30)
  • MATLAB算法实战应用案例精讲-【数据分析】数据治理

    目录 前言 知识储备 数据域建设 一、元数据 二、主数据 三、数据标准

    2024年02月08日
    浏览(35)
  • 大数据分析案例-基于决策树算法构建员工离职预测模型

    🤵‍♂️ 个人主页:@艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏 📂加关注+ 目录 1.项目背景 2.项目简介 2.1项目说明

    2024年01月24日
    浏览(36)
  • 大数据分析案例-基于XGBoost算法预测航空机票价格

    🤵‍♂️ 个人主页:@艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏 📂加关注+ 喜欢大数据分析项目的小伙伴,希望可以多多支持该系列的其他文章 大数据分析案例合集

    2023年04月08日
    浏览(39)
  • 大数据分析案例-基于随机森林算法构建新闻文本分类模型

    🤵‍♂️ 个人主页:@艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏 📂加关注+ 喜欢大数据分析项目的小伙伴,希望可以多多支持该系列的其他文章 大数据分析案例合集

    2024年02月02日
    浏览(46)
  • Python案例分析|文本相似度比较分析

     本案例通过设计和实现有关文本相似度比较的类Vector和Sketch,帮助大家进一步掌握设计Python类来解决实际问题的能力。 通过计算并比较文档的摘要可实现文本的相似度比较。 文档摘要的最简单形式可以使用文档中的k-grams(k个连续字符)的相对频率的向量来表示。假设字符

    2024年02月16日
    浏览(36)
  • 大数据分析案例-基于Adaboost算法构建糖尿病预测模型

    🤵‍♂️ 个人主页:@艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏 📂加关注+ 喜欢大数据分析项目的小伙伴,希望可以多多支持该系列的其他文章 大数据分析案例合集

    2024年02月06日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包