Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //t=WScript.StdIn.ReadLine();
- //input = 'anananaananas';
- //t='ananas';
- WSH.echo('Type string');
- input = WScript.StdIn.ReadLine();
- alphabet = [];
- if (input === ''){
- WSH.echo('Wrong input string');
- }
- WSH.echo('Type substring');
- t = WScript.StdIn.ReadLine();
- if (t === ''){
- WSH.echo('Wrong input substring');
- }
- m=t.length;
- alph=new Array();
- //Определяем алфавит строки t
- for(i=0;i<m;i++)
- alph[t.charAt(i)]=0;
- //В двумерном массиве del будем хранить таблицу переходов
- del=new Array(m+1);
- for(j=0;j<=m;j++)
- del[j]=new Array();
- //Инициализируем таблицу переходов
- for(i in alph)
- del[0][i]=0;
- //Формируем таблицу переходов
- for(j=0;j<m;j++){
- prev=del[j][t.charAt(j)];
- del[j][t.charAt(j)]=j+1;
- for(i in alph)
- del[j+1][i]=del[prev][i];
- }
- //Выводим таблицу переходов
- for(j=0;j<=m;j++){
- out='';
- for(i in alph)
- out+=del[j][i]+'';
- WScript.Echo(out);
- }
- WSH.Echo('===========');
- temp = del[0][input.charAt(0)];
- result = [];
- for (i = 0; i < input.length; i++){
- if (del[temp][input.charAt(i)] == undefined){
- del[temp][input.charAt(i)] = 0;
- }
- WSH.echo(temp, i, del[temp][input.charAt(i)], input.charAt(i));
- temp = del[temp][input.charAt(i)];
- //i++;
- if (temp == m){
- result.push(i - m + 2);
- }
- }
- WSH.echo('\n' + result);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement