Harel Gruia
BAN USERfunction IsToepliz(oMtx,nRows,nColumns)
{
var nConst;
for(var i=0; i<nColumns; i++)
for(var j=0, nConst=oMtx[0][i]; j<nRows && j+i<nColumns; j++)
if(oMtx[j][j+i] != nConst)
return false;
for(var i=1; i<nRows; i++)
for(var j=0, nConst=oMtx[i][0]; j<nColumns && j+i<nRows; j++)
if(oMtx[i+j][j] != nConst)
return false;
return true;
}
function IsUpperCase(ch)
{
return ch >= 'A' && ch <= 'Z';
} // IsUpperCase
function VerifyCCNPattern(oClassNames, sPattern)
{
oRet = new Array();
var nNameInx, nPatternInx
for(var i=0; i<oClassNames.length; i++)
{
nNameInx = nPatternInx = 0
if(!IsUpperCase(oClassNames[i][0]))
continue;
while( nPatternInx < sPattern.length && nNameInx < oClassNames[i].length )
{
if(sPattern[nPatternInx] == oClassNames[i][nNameInx])
{
++nNameInx;
++nPatternInx;
continue;
}
if(IsUpperCase(sPattern[nPatternInx]) && !IsUpperCase(oClassNames[i][nNameInx]))
{
++nNameInx;
continue;
}
break;
} // while
if(nPatternInx == sPattern.length)
oRet.push(oClassNames[i])
} // while
return oRet;
}
function LongestPalindrome(str)
{
var oHash = new Object();
for(var i=0; i<str.length; i++)
oHash[str[i]] = typeof(oHash[str[i]]) == "undefined" ? 1 : oHash[str[i]]+1;
var cCenter;
// Option I.
var sLP = "";
for(var char in oHash)
{
if(oHash[char] % 2 == 1 && !cCenter)
cCenter = char;
if(oHash[char] > 1)
sLP += Array((oHash[char] >> 1) + 1).join(char);
}
if(cCenter)
sLP += cCenter;
for(var i=sLP.length-2; i>=0; i--)
sLP += sLP[i];
return sLP;
/*
// Option II.
var oLP = new Array();
for(var char in oHash)
{
if(oHash[char] % 2 == 1 && !cCenter)
cCenter = char;
if(oHash[char] > 1)
{
for(var j=0; j<(oHash[char] >> 1); j++)
{
oLP.push(char);
oLP.unshift(char);
}
} // if
} // for
if(cCenter)
oLP.splice(oLP.length ? oLP.length >> 1 : 0, 0, cCenter)
return oLP.join("");
*/
} // LongestPalindrome
- Harel Gruia July 24, 2016