这是昨天看的一本用来测试你的Ruby技巧的题目。书名大概就是Ruby Quiz,题目是要打印LCD字符,也就是将字符串“0123456789”打印成这样。
- - - - - - - -
| | | | | | | | | | | | | |
- - - - - - -
| | | | | | | | | | | | |
- - - - - - -
这里主要是分两步,一是打印单独一个字符,这步挺简单的,past不说。第二步是要打印一串字符,这个比较棘手,我用的方法就是对应于每一行生成一个buffer之类的冬冬,然后对于每个字符把它对应行的输出存到这些buffer里面去,最后再一次过把所有这些buffer按顺序输出。这是我的方法,虽然我觉得挺笨的,不过也没想到更好的,然后就是看书里面的答案,解法实在是绝倒。她把每一行作为一个串,然后将这些串存到数组里面,然后每个字符就对应了一个字符串数组,然后把这些数组放到一个大数组里面,也就是大概像这样
[ [11,12,13],[21,22,23],[31,32,33] ]。然后她再对这个数组进行矩阵转置就会得到[[11,21,31], [12,22,32], [13,23,33]],然后逐行输出这个大数组就行了。以上是在Ruby里面的解法,如果要用Java来做的话,由于Java好像没有内置的矩阵支持,所以估计得下载一个common-math包,用里面的Matrix来做。
- - - - - - - -
| | | | | | | | | | | | | |
- - - - - - -
| | | | | | | | | | | | |
- - - - - - -
这里主要是分两步,一是打印单独一个字符,这步挺简单的,past不说。第二步是要打印一串字符,这个比较棘手,我用的方法就是对应于每一行生成一个buffer之类的冬冬,然后对于每个字符把它对应行的输出存到这些buffer里面去,最后再一次过把所有这些buffer按顺序输出。这是我的方法,虽然我觉得挺笨的,不过也没想到更好的,然后就是看书里面的答案,解法实在是绝倒。她把每一行作为一个串,然后将这些串存到数组里面,然后每个字符就对应了一个字符串数组,然后把这些数组放到一个大数组里面,也就是大概像这样
[ [11,12,13],[21,22,23],[31,32,33] ]。然后她再对这个数组进行矩阵转置就会得到[[11,21,31], [12,22,32], [13,23,33]],然后逐行输出这个大数组就行了。以上是在Ruby里面的解法,如果要用Java来做的话,由于Java好像没有内置的矩阵支持,所以估计得下载一个common-math包,用里面的Matrix来做。