# Check if a string ends with a specified string

• String
• ends with

• Yes / No

## Neuron type

Best algorithm has been found - locked

## Patterns

Pattern Input Output
1.
 String: Abcd ends with: A
 Yes / No: 0
2.
 String: Car ends with: ar
 Yes / No: 1
3.
 String: Cccccc ends with: cc
 Yes / No: 1
4.
 String: Blue ends with: e
 Yes / No: 1
5.
 String: analfabet ends with: abe
 Yes / No: 0

## Applicable neurons

• Position
• Substring (startPosition, endPosition)
• Substring (from start to position)
• Length of string
• Substring (from position to end)
• a = b
• Get after last substring
• Get the last XY characters
• Contains string substring?
• IF (1) THEN a ELSE b
• a is not b
• (x)
• character ^
• Average

## Algorithm

### Test

```/**
* Length of string:
*
* @param x1 String
* @return {Array}
*/
function neuron528(x1)
{
return[x1.toString().length];
}

/**
* PositionLast: Search last occurrence
*
* @param x1 MyString
* @param x2 FindMe
* @return {Array}
*/
function neuron581(x1, x2)
{
return [x1.toString().lastIndexOf(x2)];
}

/**
* Plus (x + y): The addition of two whole numbers is the total amount of those quantities combined.
*
* @param x1 first number
* @param x2 second number
* @return {Array}
*/
function neuron1(x1, x2)
{
math.config({number: 'BigNumber', precision: 64}); return [math.eval(Number(x1) + '+'+Number(x2)).toString()];
}

/**
* Length of string:
*
* @param x1 String
* @return {Array}
*/
function neuron528(x1)
{
return[x1.toString().length];
}

/**
* Substring (startPosition, endPosition): Get substring from string - from position - to pos
*
* @param x1 MyString
* @param x2 start position
* @param x3 end position
* @return {Array}
*/
function neuron525(x1, x2, x3)
{
return[x1.toString().substring(x2, x3)];
}

/**
* Substring (from position to end):
*
* @param x1 MyString
* @param x2 start position
* @return {Array}
*/
function neuron529(x1, x2)
{
var outputs = [];
outputs[0] = x1;
outputs[1] = x2;

arr = neuron528(outputs[0]);
outputs[2] = arr[0];

arr = neuron525(outputs[0], outputs[1], outputs[2]);
outputs[3] = arr[0];

return[outputs[3]];
}

/**
* Get after last substring:
*
* @param x1 MyString
* @param x2 Substring
* @return {Array}
*/
function neuron618(x1, x2)
{
var outputs = [];
outputs[0] = x1;
outputs[1] = x2;

arr = neuron528(outputs[1]);
outputs[2] = arr[0];

arr = neuron581(outputs[0], outputs[1]);
outputs[3] = arr[0];

arr = neuron1(outputs[2], outputs[3]);
outputs[4] = arr[0];

arr = neuron529(outputs[0], outputs[4]);
outputs[5] = arr[0];

return[outputs[5]];
}

/**
* 0:
*
* @return {Array}
*/
function neuron500()
{
return [0];
}

/**
* Position: Search position substring of string
*
* @param x1 MyString
* @param x2 FindMe
* @return {Array}
*/
function neuron523(x1, x2)
{
return [x1.toString().indexOf(x2.toString())];
}

/**
* a > b: IF a>b THEN 1 ELSE 0;
*
* @param x1 a
* @param x2 b
* @return {Array}
*/
function neuron589(x1, x2)
{
return [(Number(x1) > Number(x2)) ? 1 : 0];
}

/**
* Contains string substring?:
*
* @param x1 String
* @param x2 Searched substring
* @return {Array}
*/
function neuron824(x1, x2)
{
var outputs = [];
outputs[0] = x1;
outputs[1] = x2;

arr = neuron500();
outputs[2] = arr[0];

arr = neuron523(outputs[0], outputs[1]);
outputs[3] = arr[0];

arr = neuron589(outputs[3], outputs[2]);
outputs[4] = arr[0];

return[outputs[4]];
}

/**
* a = b: IF a=b THEN 1 ELSE 0;
*
* @param x1 a
* @param x2 b
* @return {Array}
*/
function neuron591(x1, x2)
{
return [(x1 == x2) ? 1 : 0];
}

/**
* Check if a string ends with a specified string:
*
* @param x1 String
* @param x2 ends with
* @return {Array}
*/
function neuron916(x1, x2)
{
var outputs = [];
outputs[0] = x1;
outputs[1] = x2;

arr = neuron618(outputs[0], outputs[1]);
outputs[2] = arr[0];

arr = neuron824(outputs[1], outputs[0]);
outputs[3] = arr[0];

arr = neuron591(outputs[3], outputs[2]);
outputs[4] = arr[0];

return[outputs[4]];
}

```