-
【刷题小结】华为2016研发工程师编程题-数独
题目描述 数独是一个我们都非常熟悉的经典游戏,运用计算机我们可以很快地解开数独难题,现在有一些简单的数独题目,请编写一个程序求解。 输入 输入9行,每行为空格隔开的9个数字,为0的地方就是需要填充的。 输出 输出九行,每行九个空格隔开的数字,为解出的答案。 示例 输入 0 6 0 5 9 3 0 0 0 9 0 1 0 0 0 5 0 0 0 3 0 4 0 0 0 9 0 1 0 8 0 2 0 0 0 4 4 0 0 3 0 9 0 0 1 2 0 0 0 1 0 6…
-
【刷题小结】华为2016研发工程师编程题-字符集合
题目描述 输入一个字符串,求出该字符串包含的字符集合。 输入 每组数据输入一个字符串,字符串最大长度为100,且只包含字母,不可能为空串,区分大小写。 输出 每组数据一行,按字符串原有的字符顺序,输出字符集合,即重复出现并靠后的字母不输出。 示例 输入 abcqweracb 输出 abcqwer 解题 思路 这道题我看到的时候就决定用set来写,但是一开始没有看到按照原来的顺序输出,所以WA了一发。后来发现可以不需要用set来保存数据,只需要用set来…
-
【刷题小结】华为2016研发工程师编程题-删数
我原来是没有打算把做过的题写成博客的,因为大部分还是基础题,而且我往往都是暴力求解,不太优雅。但是做了这道数独题对我还是很有启发的,虽然我仍然用的是暴力求解。做过的很多题有些有着很精巧的解法,但是往往随着时间过去也不太记得了。本地的很多cpp文件总是不能同步带走,而且很多做题的网站查看代码也不是很方便,所以就记录一下权当纪念了。 题目描述 有一个数组a[N]顺序存放0~N-1,要求每隔两个数删掉一个数,到末尾时循环至开头继续进行,求最后一个被删掉的数的原始下标位置。以8个数(N=7)为例:…
-
【基础方法】Trie Tree(字典树)
之前有看到过这个概念,但是没有认真了解过,这次刷hihoCoder的题目看到了这个。 Trie Tree,也就是常说的字典树。它利用了空间换时间的思想,用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,提高查询效率。它是一种多叉树的结构,对它来说,每一个结点由值域和链域两部分组成,值域保存这个结点对应的字符数和以到这个结点的所有的字符组成的字符串为前缀的字符串个数,链域则是指向该结点后继的结点。树的形式极大地减少了比较的次数,便于查找。 对于一个结点来说,链域的存储方…