freeCodeCamp/curriculum/challenges/german/10-coding-interview-prep/rosetta-code/i-before-e-except-after-c.md

2.2 KiB

id title challengeType forumTopicId dashedName
5a23c84252665b21eecc7eb0 I before E except after C 1 302288 i-before-e-except-after-c

--description--

"I before E, except after C" is a general rule for English language spelling. If one is unsure whether a word is spelled with the digraph ei or ie, the rhyme suggests that the correct order is ie unless the preceding letter is c, in which case it may be ei.

Using the words provided, check if the two sub-clauses of the phrase are plausible individually:

  1. "I before E when not preceded by C".
  2. "E before I when preceded by C".

If both sub-phrases are plausible then the original phrase can be said to be plausible.

--instructions--

Write a function that accepts a word and check if the word follows this rule. The function should return true if the word follows the rule and false if it does not.

--hints--

IBeforeExceptC should be a function.

assert(typeof IBeforeExceptC == 'function');

IBeforeExceptC("receive") should return a boolean.

assert(typeof IBeforeExceptC('receive') == 'boolean');

IBeforeExceptC("receive") should return true.

assert.equal(IBeforeExceptC('receive'), true);

IBeforeExceptC("science") should return false.

assert.equal(IBeforeExceptC('science'), false);

IBeforeExceptC("imperceivable") should return true.

assert.equal(IBeforeExceptC('imperceivable'), true);

IBeforeExceptC("inconceivable") should return true.

assert.equal(IBeforeExceptC('inconceivable'), true);

IBeforeExceptC("insufficient") should return false.

assert.equal(IBeforeExceptC('insufficient'), false);

IBeforeExceptC("omniscient") should return false.

assert.equal(IBeforeExceptC('omniscient'), false);

--seed--

--seed-contents--

function IBeforeExceptC(word) {

}

--solutions--

function IBeforeExceptC(word)
{
    if(word.indexOf("c")==-1 && word.indexOf("ie")!=-1)
        return true;
    else if(word.indexOf("cei")!=-1)
        return true;
    return false;
}