跑《算法》第四版的 WeightedQuickUnionUF 程序,读入一个txt文件中的整数对,txt文件打开是这样的:
程序中进行读入的时候,代码如下:
int N = StdIn.readInt();
StdOut.println(N);
WeightedQuickUnionUF uf = new WeightedQuickUnionUF(N);
while(!StdIn.isEmpty()){
int p = StdIn.readInt();
int q = StdIn.readInt();
if(uf.connected(p,q)){
continue;
}
uf.union(p,q);
}
按照显示的顺序,应该读入 N = 104,然后 readInt下一个整数是33,实际上读入的是 N = 10,然后按照整数对的形式依次读入,下一个readInt是4,下一个readInt是4,当然后者是正确的。开始我以为是readInt函数读入的特殊规则,看了readInt源码和一些博客还是没有发现问题,后来把文件用 sublime 打开才发现问题,sublime中的显示:
实际上的格式正是按照整数对这样排列的,而txt则把所有数据都归到一行了,只有空格显示,以后打开txt文件都用sublime吧,避免踩坑。
这里记录下这个小问题。
如有不当之处还请指出,一起学习,一起进步。我的GitHub主页:WangPanHUST