我见过大多数网络程序员(用sql编写一些脚本来制作CRUD应用程序)不知道如何在相对复杂的情况下构建业务逻辑,比如使用Stack,Queue或写递归算法。这些程序员习惯于在谷歌上搜索代码并粘贴它,但不明白哪个数据结构做什么以及何时使用什么。
我正在尝试召开会议来培训网络程序员,以改善他们对数据结构的了解,例如:我给出了一个示例程序来计算给定文本中单词的重复,一个应该使用Dictionary / Hashtable,但即使在引导它们使用Dictionary之后,它们仍然无法做到。
我需要样本问题定义(当然我可以找出答案,但我不希望任何人在这里给出代码,只有问题定义),应该培训他们使用Stack,Queue,List,Dictionary等。
如果我给他们像解析和表达这样的东西,他们会心脏病发作,所以我需要简单的算法开始,就像计算给定文本中的重复一样简单。
请假设只有.NET 2.0,所以泛型很好,但没有Linq等。
答案 0 :(得分:1)
以下是一些。
1)
给定一个只包含'('和')'的字符串,给出一个算法来检查它是否是一个包好的括号表达式(即括号是否正确匹配)。
示例:“(())()()”括号内,但“())(”不是。
2)
将数字表示为数字的链接列表。给出算法以找到这些列表的总和和乘积。 (这种表示实际上可以用来表示大整数)。
3)
用户首先输入一堆不同的数字。输出收到的号码总数,然后按照收到的顺序输入数字本身。如果额外信用,如果用户多次输入相同的数字,则标记错误。
4)
用户输入一堆数字,可能是重复的。输出收到的不同号码的数量,并按照收到它们的相反顺序。
因此,如果用户输入11 22 22 11 10,则输出3,然后输出10 22 11。