1
1
// import visualization libraries {
2
- const { Tracer, Array1DTracer, LogTracer, Array2DTracer, ChartTracer, Randomize, Layout, VerticalLayout } = require ( 'algorithm-visualizer' ) ;
2
+ const { Tracer, Array1DTracer, LogTracer, Array2DTracer, ChartTracer, Randomize, Layout, VerticalLayout} = require ( 'algorithm-visualizer' ) ;
3
3
// }
4
4
5
5
// define tracer variables {
6
- const array2dTracer = new Array1DTracer ( 'Array' ) ;
6
+ const tracer = new Array1DTracer ( 'Array' ) ;
7
7
const logger = new LogTracer ( '无重复字符的最长子串' ) ;
8
8
9
- Layout . setRoot ( new VerticalLayout ( [ array2dTracer , logger ] ) ) ;
9
+ Layout . setRoot ( new VerticalLayout ( [ array2dTracer , logger ] ) ) ;
10
10
// }
11
11
12
12
var s = "ababcabcdabcdeabcdefabac" ;
13
13
14
14
( function main ( ) {
15
- array2dTracer . set ( s ) ;
15
+ tracer . set ( s ) ;
16
16
17
17
var beginIdx = 0 , endIdx = 0 , maxSize = 0 ;
18
18
for ( var i = 0 ; i < s . length ; i ++ ) {
@@ -21,13 +21,15 @@ var s = "ababcabcdabcdeabcdefabac";
21
21
22
22
var existIdx = s . indexOf ( s . charAt ( i ) , beginIdx ) ;
23
23
if ( existIdx < endIdx ) {
24
- array2dTracer . select ( beginIdx , i - 1 ) ;
25
-
24
+ tracer . select ( beginIdx , i - 1 ) ;
25
+ tracer . patch ( i ) ;
26
26
beginIdx = existIdx + 1 ;
27
27
28
28
Tracer . delay ( ) ;
29
- array2dTracer . deselect ( 0 , beginIdx ) ;
29
+ tracer . deselect ( 0 , beginIdx ) ;
30
+ tracer . depatch ( i ) ;
30
31
32
+ logger . println ( '碰撞长度:' + ( endIdx - beginIdx + 1 ) ) ;
31
33
}
32
34
33
35
var e = endIdx - beginIdx + 1 ;
@@ -38,6 +40,6 @@ var s = "ababcabcdabcdeabcdefabac";
38
40
39
41
}
40
42
41
- logger . println ( maxSize ) ;
43
+ tracer . println ( '最长长度:' + maxSize ) ;
42
44
43
45
} ) ( ) ;
0 commit comments