假设我有两个积分
new Point(80,40);
new Point(40,80);
我想将它们转换为一个字符串,一个String表示。
01
10
其中1是一个点,0是空的空格。你可以在这里看到字符串被放大40倍,每个点的宽度和高度都是40.所有点都是40的倍数。
我试图用StringBuilder做些什么,但我不知道从哪里开始,因为我只能插入给定字符串长度的字符,而不是高度(或y值)。
这是另一个例子。
new Point(120,80);
new Point(80,240);
new Point(40,80);
变成
010
001
000
000
000
010
我最好选择一个有效的解决方案,我有数千个积分。解决方案不需要代码,只需了解如何实现此解决方案。
但是,数据实际上存储在一个散列映射中,该散列映射包含应该写入的字符(在上面的示例中为全1)作为键,而点作为值。
Hashmap的示例
Value Key
new Point(40,40) 'a'
new Point(80,80) 'b'
哪会导致
a0
0b
答案 0 :(得分:1)
这是一个使用内存的解决方案,但计算效率很高:
创建一个2D布尔数组来表示您的“地图”,初始化为全部 - false
。
迭代你的点,将坐标除以40,用它来索引数组,并设置为true
。
迭代您的2D数组,为每个元素打印1
或0
。