以各种语言遍历嵌套数据结构

2021-04-12 16:53:33

此存储库的目标是分享解决跨各种编程语言的遍历和注释数据结构的常见问题的解决方案。

该算法应收到部分列表。一个部分是一个键值数据结构,带有"标题&#34 ;,一个" reset_lesson_position"布尔,以及"课程"课程是带有&#34的键值数据结构;名称"场地。

您的工作是遍历部分列表,将位置(从1开始)添加到每个部分,并遍历添加一个位置(从1开始)到每个课程的课程列表。但请注意,课程位置在跨部分共享。如果" reset_lesson_position&#34也应该重置课程位置;是真的。

[{" title&#34 ;:"入门"" reset_lesson_position&#34 ;: false,"课程&#34 ;: [{&#34 ;名称&#34 ;:"欢迎"},{"姓名&#34 ;:"安装"}],{" title&# 34 ;:"基本运算符"" reset_lesson_position&#34 ;: false,"课程&#34 ;: [{"名称&#34 ;:&# 34;加法/减法"},{"姓名&#34 ;:"乘法/分部"}},{"标题&#34 ;:&# 34;高级主题"" reset_lesson _position":真实,"课程&#34 ;: [{"名称&#34 ;:"可变&# 34;},{"姓名&#34 ;:"不可变形"}]]

[{"标题&#34 ;:"入门"" reset_lesson_position&#34 ;: false,"位置&#34 ;: 1,&#34 ;课程&#34 ;: [{"姓名&#34 ;:"欢迎","位置&#34 ;: 1},{"名称&# 34 ;:"安装""位置":2},]},{"标题&#34 ;:"基本运算符" ," reset_lesson_position&#34 ;: false,"位置&#34 ;: 2,"课程&#34 ;: [{"名称&#34 ;:&#34 ;加法/减法&#34 ;,"位置&#34 ;: 3},{"姓名&#34 ;:"乘法/分部&#34 ;,"位置&#34 ;: 4}]},{"标题&#34 ;:"高级主题"," reset_lesson_position":true,"位置& #34 ;: 3,"课程&#34 ;: [{"姓名&#34 ;:"可变性""位置&#34 ;: 1} ,{"姓名&#34 ;:"不可变形&#34 ;,"位置&#34 ;: 2}]}]

部分= ...#中上面的数据是为了Python数据结构,为方便才能闪烁,部分_counter = 1节= 1 = 1次部分:如果部分[' reset_lesson_position']:lesson_counter = 1部分['位置'] = section_counter section_counter + = 1课程['课程']:课程['位置'] = lesson_counter lesson_counter + = 1 print(部分)

感谢@Nickjanetakis对问题的描述和贡献此Python解决方案。

例如,避免新的条目,这是现有解决方案的小变化。 使用不同方法的解决方案,例如可变性与不可变节,单通式VS块等都受到欢迎。 一旦您的解决方案已准备就绪,请发送拉动请求。 解决方案应该在以编程语言命名的目录内,并且是在采取的方法之后命名的单个文件。 例如,上面的Python解决方案放置在: 如果您的解决方案需要超过1个文件,那么您可以将所有这些包含在Python / for-In / example.py等目录中。 但是,不需要包含项目设置文件。 重要的是,解决方案被认为是可读性和惯用的。 目标是专注于可读性而不是性能,代码打高尔夫等。 此存储库中的所有代码都应放在公共域中。 感谢您的时间和共享解决方案!