Your browser (Unknown 0) is no longer supported. Some parts of the website may not work correctly. Please update your browser.

AVAILABLE EXERCISES:

Exercise 9

Bitwise operations (bit-ops)

Exercise 8

Frontend

Exercise 7

Data Structures

Exercise 6

SQL

Exercise 5

Coding skills

Exercise 4

Algorithmic skills

Exercise 3

2017 Contest

Exercise 2

2016 Contest

Exercise 1

2015 Contest

Given a string containing words, find the longest word that satisfies specific conditions.

Spoken language:

You would like to set a password for a bank account. However, there are three restrictions on the format of the password:

- it has to contain only alphanumerical characters (
a−z,A−Z,0−9);- there should be an even number of letters;
- there should be an odd number of digits.

You are given a string S consisting of N characters. String S can be divided into *words* by splitting it at, and removing, the spaces. The goal is to choose the longest word that is a valid password. You can assume that if there are K spaces in string S then there are exactly K + 1 words.

For example, given "`test 5 a0A pass007 ?xy1`", there are five words and three of them are valid passwords: "`5`", "`a0A`" and "`pass007`". Thus the longest password is "`pass007`" and its length is 7. Note that neither "`test`" nor "`?xy1`" is a valid password, because "`?`" is not an alphanumerical character and "`test`" contains an even number of digits (zero).

Write a function:

int solution(char *S);

that, given a non-empty string S consisting of N characters, returns the length of the longest word from the string that is a valid password. If there is no such word, your function should return −1.

For example, given S = "`test 5 a0A pass007 ?xy1`", your function should return 7, as explained above.

Assume that:

- N is an integer within the range [1..200];
- string S consists only of printable ASCII characters and spaces.

In your solution, focus on ** correctness**. The performance of your solution will not be the focus of the assessment.

Copyright 2009–2024 by Codility Limited. All Rights Reserved. Unauthorized copying, publication or disclosure prohibited.

You would like to set a password for a bank account. However, there are three restrictions on the format of the password:

- it has to contain only alphanumerical characters (
a−z,A−Z,0−9);- there should be an even number of letters;
- there should be an odd number of digits.

You are given a string S consisting of N characters. String S can be divided into *words* by splitting it at, and removing, the spaces. The goal is to choose the longest word that is a valid password. You can assume that if there are K spaces in string S then there are exactly K + 1 words.

For example, given "`test 5 a0A pass007 ?xy1`", there are five words and three of them are valid passwords: "`5`", "`a0A`" and "`pass007`". Thus the longest password is "`pass007`" and its length is 7. Note that neither "`test`" nor "`?xy1`" is a valid password, because "`?`" is not an alphanumerical character and "`test`" contains an even number of digits (zero).

Write a function:

int solution(string &S);

that, given a non-empty string S consisting of N characters, returns the length of the longest word from the string that is a valid password. If there is no such word, your function should return −1.

For example, given S = "`test 5 a0A pass007 ?xy1`", your function should return 7, as explained above.

Assume that:

- N is an integer within the range [1..200];
- string S consists only of printable ASCII characters and spaces.

In your solution, focus on ** correctness**. The performance of your solution will not be the focus of the assessment.

Copyright 2009–2024 by Codility Limited. All Rights Reserved. Unauthorized copying, publication or disclosure prohibited.

You would like to set a password for a bank account. However, there are three restrictions on the format of the password:

- it has to contain only alphanumerical characters (
a−z,A−Z,0−9);- there should be an even number of letters;
- there should be an odd number of digits.

You are given a string S consisting of N characters. String S can be divided into *words* by splitting it at, and removing, the spaces. The goal is to choose the longest word that is a valid password. You can assume that if there are K spaces in string S then there are exactly K + 1 words.

For example, given "`test 5 a0A pass007 ?xy1`", there are five words and three of them are valid passwords: "`5`", "`a0A`" and "`pass007`". Thus the longest password is "`pass007`" and its length is 7. Note that neither "`test`" nor "`?xy1`" is a valid password, because "`?`" is not an alphanumerical character and "`test`" contains an even number of digits (zero).

Write a function:

int solution(string &S);

that, given a non-empty string S consisting of N characters, returns the length of the longest word from the string that is a valid password. If there is no such word, your function should return −1.

For example, given S = "`test 5 a0A pass007 ?xy1`", your function should return 7, as explained above.

Assume that:

- N is an integer within the range [1..200];
- string S consists only of printable ASCII characters and spaces.

In your solution, focus on ** correctness**. The performance of your solution will not be the focus of the assessment.

Copyright 2009–2024 by Codility Limited. All Rights Reserved. Unauthorized copying, publication or disclosure prohibited.

- it has to contain only alphanumerical characters (
a−z,A−Z,0−9);- there should be an even number of letters;
- there should be an odd number of digits.

*words* by splitting it at, and removing, the spaces. The goal is to choose the longest word that is a valid password. You can assume that if there are K spaces in string S then there are exactly K + 1 words.

`test 5 a0A pass007 ?xy1`", there are five words and three of them are valid passwords: "`5`", "`a0A`" and "`pass007`". Thus the longest password is "`pass007`" and its length is 7. Note that neither "`test`" nor "`?xy1`" is a valid password, because "`?`" is not an alphanumerical character and "`test`" contains an even number of digits (zero).

Write a function:

class Solution { public int solution(string S); }

`test 5 a0A pass007 ?xy1`", your function should return 7, as explained above.

Assume that:

- N is an integer within the range [1..200];
- string S consists only of printable ASCII characters and spaces.

** correctness**. The performance of your solution will not be the focus of the assessment.

- it has to contain only alphanumerical characters (
a−z,A−Z,0−9);- there should be an even number of letters;
- there should be an odd number of digits.

*words* by splitting it at, and removing, the spaces. The goal is to choose the longest word that is a valid password. You can assume that if there are K spaces in string S then there are exactly K + 1 words.

`test 5 a0A pass007 ?xy1`", there are five words and three of them are valid passwords: "`5`", "`a0A`" and "`pass007`". Thus the longest password is "`pass007`" and its length is 7. Note that neither "`test`" nor "`?xy1`" is a valid password, because "`?`" is not an alphanumerical character and "`test`" contains an even number of digits (zero).

Write a function:

int solution(String S);

`test 5 a0A pass007 ?xy1`", your function should return 7, as explained above.

Assume that:

- N is an integer within the range [1..200];
- string S consists only of printable ASCII characters and spaces.

** correctness**. The performance of your solution will not be the focus of the assessment.

- it has to contain only alphanumerical characters (
a−z,A−Z,0−9);- there should be an even number of letters;
- there should be an odd number of digits.

*words* by splitting it at, and removing, the spaces. The goal is to choose the longest word that is a valid password. You can assume that if there are K spaces in string S then there are exactly K + 1 words.

`test 5 a0A pass007 ?xy1`", there are five words and three of them are valid passwords: "`5`", "`a0A`" and "`pass007`". Thus the longest password is "`pass007`" and its length is 7. Note that neither "`test`" nor "`?xy1`" is a valid password, because "`?`" is not an alphanumerical character and "`test`" contains an even number of digits (zero).

Write a function:

func Solution(S string) int

`test 5 a0A pass007 ?xy1`", your function should return 7, as explained above.

Assume that:

- N is an integer within the range [1..200];
- string S consists only of printable ASCII characters and spaces.

** correctness**. The performance of your solution will not be the focus of the assessment.

- it has to contain only alphanumerical characters (
a−z,A−Z,0−9);- there should be an even number of letters;
- there should be an odd number of digits.

*words* by splitting it at, and removing, the spaces. The goal is to choose the longest word that is a valid password. You can assume that if there are K spaces in string S then there are exactly K + 1 words.

`test 5 a0A pass007 ?xy1`", there are five words and three of them are valid passwords: "`5`", "`a0A`" and "`pass007`". Thus the longest password is "`pass007`" and its length is 7. Note that neither "`test`" nor "`?xy1`" is a valid password, because "`?`" is not an alphanumerical character and "`test`" contains an even number of digits (zero).

Write a function:

class Solution { public int solution(String S); }

`test 5 a0A pass007 ?xy1`", your function should return 7, as explained above.

Assume that:

- N is an integer within the range [1..200];
- string S consists only of printable ASCII characters and spaces.

** correctness**. The performance of your solution will not be the focus of the assessment.

- it has to contain only alphanumerical characters (
a−z,A−Z,0−9);- there should be an even number of letters;
- there should be an odd number of digits.

*words* by splitting it at, and removing, the spaces. The goal is to choose the longest word that is a valid password. You can assume that if there are K spaces in string S then there are exactly K + 1 words.

`test 5 a0A pass007 ?xy1`", there are five words and three of them are valid passwords: "`5`", "`a0A`" and "`pass007`". Thus the longest password is "`pass007`" and its length is 7. Note that neither "`test`" nor "`?xy1`" is a valid password, because "`?`" is not an alphanumerical character and "`test`" contains an even number of digits (zero).

Write a function:

class Solution { public int solution(String S); }

`test 5 a0A pass007 ?xy1`", your function should return 7, as explained above.

Assume that:

- N is an integer within the range [1..200];
- string S consists only of printable ASCII characters and spaces.

** correctness**. The performance of your solution will not be the focus of the assessment.

- it has to contain only alphanumerical characters (
a−z,A−Z,0−9);- there should be an even number of letters;
- there should be an odd number of digits.

*words* by splitting it at, and removing, the spaces. The goal is to choose the longest word that is a valid password. You can assume that if there are K spaces in string S then there are exactly K + 1 words.

`test 5 a0A pass007 ?xy1`", there are five words and three of them are valid passwords: "`5`", "`a0A`" and "`pass007`". Thus the longest password is "`pass007`" and its length is 7. Note that neither "`test`" nor "`?xy1`" is a valid password, because "`?`" is not an alphanumerical character and "`test`" contains an even number of digits (zero).

Write a function:

function solution(S);

`test 5 a0A pass007 ?xy1`", your function should return 7, as explained above.

Assume that:

- N is an integer within the range [1..200];
- string S consists only of printable ASCII characters and spaces.

** correctness**. The performance of your solution will not be the focus of the assessment.

- it has to contain only alphanumerical characters (
a−z,A−Z,0−9);- there should be an even number of letters;
- there should be an odd number of digits.

*words* by splitting it at, and removing, the spaces. The goal is to choose the longest word that is a valid password. You can assume that if there are K spaces in string S then there are exactly K + 1 words.

`test 5 a0A pass007 ?xy1`", there are five words and three of them are valid passwords: "`5`", "`a0A`" and "`pass007`". Thus the longest password is "`pass007`" and its length is 7. Note that neither "`test`" nor "`?xy1`" is a valid password, because "`?`" is not an alphanumerical character and "`test`" contains an even number of digits (zero).

Write a function:

fun solution(S: String): Int

`test 5 a0A pass007 ?xy1`", your function should return 7, as explained above.

Assume that:

- N is an integer within the range [1..200];
- string S consists only of printable ASCII characters and spaces.

** correctness**. The performance of your solution will not be the focus of the assessment.

- it has to contain only alphanumerical characters (
a−z,A−Z,0−9);- there should be an even number of letters;
- there should be an odd number of digits.

*words* by splitting it at, and removing, the spaces. The goal is to choose the longest word that is a valid password. You can assume that if there are K spaces in string S then there are exactly K + 1 words.

`test 5 a0A pass007 ?xy1`", there are five words and three of them are valid passwords: "`5`", "`a0A`" and "`pass007`". Thus the longest password is "`pass007`" and its length is 7. Note that neither "`test`" nor "`?xy1`" is a valid password, because "`?`" is not an alphanumerical character and "`test`" contains an even number of digits (zero).

Write a function:

function solution(S)

`test 5 a0A pass007 ?xy1`", your function should return 7, as explained above.

Assume that:

- N is an integer within the range [1..200];
- string S consists only of printable ASCII characters and spaces.

** correctness**. The performance of your solution will not be the focus of the assessment.

- it has to contain only alphanumerical characters (
a−z,A−Z,0−9);- there should be an even number of letters;
- there should be an odd number of digits.

*words* by splitting it at, and removing, the spaces. The goal is to choose the longest word that is a valid password. You can assume that if there are K spaces in string S then there are exactly K + 1 words.

`test 5 a0A pass007 ?xy1`", there are five words and three of them are valid passwords: "`5`", "`a0A`" and "`pass007`". Thus the longest password is "`pass007`" and its length is 7. Note that neither "`test`" nor "`?xy1`" is a valid password, because "`?`" is not an alphanumerical character and "`test`" contains an even number of digits (zero).

Write a function:

int solution(NSString *S);

`test 5 a0A pass007 ?xy1`", your function should return 7, as explained above.

Assume that:

- N is an integer within the range [1..200];
- string S consists only of printable ASCII characters and spaces.

** correctness**. The performance of your solution will not be the focus of the assessment.

- it has to contain only alphanumerical characters (
a−z,A−Z,0−9);- there should be an even number of letters;
- there should be an odd number of digits.

*words* by splitting it at, and removing, the spaces. The goal is to choose the longest word that is a valid password. You can assume that if there are K spaces in string S then there are exactly K + 1 words.

`test 5 a0A pass007 ?xy1`", there are five words and three of them are valid passwords: "`5`", "`a0A`" and "`pass007`". Thus the longest password is "`pass007`" and its length is 7. Note that neither "`test`" nor "`?xy1`" is a valid password, because "`?`" is not an alphanumerical character and "`test`" contains an even number of digits (zero).

Write a function:

function solution(S: PChar): longint;

`test 5 a0A pass007 ?xy1`", your function should return 7, as explained above.

Assume that:

- N is an integer within the range [1..200];
- string S consists only of printable ASCII characters and spaces.

** correctness**. The performance of your solution will not be the focus of the assessment.

- it has to contain only alphanumerical characters (
a−z,A−Z,0−9);- there should be an even number of letters;
- there should be an odd number of digits.

*words* by splitting it at, and removing, the spaces. The goal is to choose the longest word that is a valid password. You can assume that if there are K spaces in string S then there are exactly K + 1 words.

`test 5 a0A pass007 ?xy1`", there are five words and three of them are valid passwords: "`5`", "`a0A`" and "`pass007`". Thus the longest password is "`pass007`" and its length is 7. Note that neither "`test`" nor "`?xy1`" is a valid password, because "`?`" is not an alphanumerical character and "`test`" contains an even number of digits (zero).

Write a function:

function solution($S);

`test 5 a0A pass007 ?xy1`", your function should return 7, as explained above.

Assume that:

- N is an integer within the range [1..200];
- string S consists only of printable ASCII characters and spaces.

** correctness**. The performance of your solution will not be the focus of the assessment.

- it has to contain only alphanumerical characters (
a−z,A−Z,0−9);- there should be an even number of letters;
- there should be an odd number of digits.

*words* by splitting it at, and removing, the spaces. The goal is to choose the longest word that is a valid password. You can assume that if there are K spaces in string S then there are exactly K + 1 words.

`test 5 a0A pass007 ?xy1`", there are five words and three of them are valid passwords: "`5`", "`a0A`" and "`pass007`". Thus the longest password is "`pass007`" and its length is 7. Note that neither "`test`" nor "`?xy1`" is a valid password, because "`?`" is not an alphanumerical character and "`test`" contains an even number of digits (zero).

Write a function:

sub solution { my ($S) = @_; ... }

`test 5 a0A pass007 ?xy1`", your function should return 7, as explained above.

Assume that:

- N is an integer within the range [1..200];
- string S consists only of printable ASCII characters and spaces.

** correctness**. The performance of your solution will not be the focus of the assessment.

- it has to contain only alphanumerical characters (
a−z,A−Z,0−9);- there should be an even number of letters;
- there should be an odd number of digits.

*words* by splitting it at, and removing, the spaces. The goal is to choose the longest word that is a valid password. You can assume that if there are K spaces in string S then there are exactly K + 1 words.

`test 5 a0A pass007 ?xy1`", there are five words and three of them are valid passwords: "`5`", "`a0A`" and "`pass007`". Thus the longest password is "`pass007`" and its length is 7. Note that neither "`test`" nor "`?xy1`" is a valid password, because "`?`" is not an alphanumerical character and "`test`" contains an even number of digits (zero).

Write a function:

def solution(S)

`test 5 a0A pass007 ?xy1`", your function should return 7, as explained above.

Assume that:

- N is an integer within the range [1..200];
- string S consists only of printable ASCII characters and spaces.

** correctness**. The performance of your solution will not be the focus of the assessment.

- it has to contain only alphanumerical characters (
a−z,A−Z,0−9);- there should be an even number of letters;
- there should be an odd number of digits.

*words* by splitting it at, and removing, the spaces. The goal is to choose the longest word that is a valid password. You can assume that if there are K spaces in string S then there are exactly K + 1 words.

`test 5 a0A pass007 ?xy1`", there are five words and three of them are valid passwords: "`5`", "`a0A`" and "`pass007`". Thus the longest password is "`pass007`" and its length is 7. Note that neither "`test`" nor "`?xy1`" is a valid password, because "`?`" is not an alphanumerical character and "`test`" contains an even number of digits (zero).

Write a function:

def solution(s)

`test 5 a0A pass007 ?xy1`", your function should return 7, as explained above.

Assume that:

- N is an integer within the range [1..200];
- string S consists only of printable ASCII characters and spaces.

** correctness**. The performance of your solution will not be the focus of the assessment.

- it has to contain only alphanumerical characters (
a−z,A−Z,0−9);- there should be an even number of letters;
- there should be an odd number of digits.

*words* by splitting it at, and removing, the spaces. The goal is to choose the longest word that is a valid password. You can assume that if there are K spaces in string S then there are exactly K + 1 words.

`test 5 a0A pass007 ?xy1`", there are five words and three of them are valid passwords: "`5`", "`a0A`" and "`pass007`". Thus the longest password is "`pass007`" and its length is 7. Note that neither "`test`" nor "`?xy1`" is a valid password, because "`?`" is not an alphanumerical character and "`test`" contains an even number of digits (zero).

Write a function:

object Solution { def solution(s: String): Int }

`test 5 a0A pass007 ?xy1`", your function should return 7, as explained above.

Assume that:

- N is an integer within the range [1..200];
- string S consists only of printable ASCII characters and spaces.

** correctness**. The performance of your solution will not be the focus of the assessment.

- it has to contain only alphanumerical characters (
a−z,A−Z,0−9);- there should be an even number of letters;
- there should be an odd number of digits.

*words* by splitting it at, and removing, the spaces. The goal is to choose the longest word that is a valid password. You can assume that if there are K spaces in string S then there are exactly K + 1 words.

`test 5 a0A pass007 ?xy1`", there are five words and three of them are valid passwords: "`5`", "`a0A`" and "`pass007`". Thus the longest password is "`pass007`" and its length is 7. Note that neither "`test`" nor "`?xy1`" is a valid password, because "`?`" is not an alphanumerical character and "`test`" contains an even number of digits (zero).

Write a function:

public func solution(_ S : inout String) -> Int

`test 5 a0A pass007 ?xy1`", your function should return 7, as explained above.

Assume that:

- N is an integer within the range [1..200];
- string S consists only of printable ASCII characters and spaces.

** correctness**. The performance of your solution will not be the focus of the assessment.

- it has to contain only alphanumerical characters (
a−z,A−Z,0−9);- there should be an even number of letters;
- there should be an odd number of digits.

*words* by splitting it at, and removing, the spaces. The goal is to choose the longest word that is a valid password. You can assume that if there are K spaces in string S then there are exactly K + 1 words.

`test 5 a0A pass007 ?xy1`", there are five words and three of them are valid passwords: "`5`", "`a0A`" and "`pass007`". Thus the longest password is "`pass007`" and its length is 7. Note that neither "`test`" nor "`?xy1`" is a valid password, because "`?`" is not an alphanumerical character and "`test`" contains an even number of digits (zero).

Write a function:

function solution(S: string): number;

`test 5 a0A pass007 ?xy1`", your function should return 7, as explained above.

Assume that:

- N is an integer within the range [1..200];
- string S consists only of printable ASCII characters and spaces.

** correctness**. The performance of your solution will not be the focus of the assessment.

- it has to contain only alphanumerical characters (
a−z,A−Z,0−9);- there should be an even number of letters;
- there should be an odd number of digits.

*words* by splitting it at, and removing, the spaces. The goal is to choose the longest word that is a valid password. You can assume that if there are K spaces in string S then there are exactly K + 1 words.

`test 5 a0A pass007 ?xy1`", there are five words and three of them are valid passwords: "`5`", "`a0A`" and "`pass007`". Thus the longest password is "`pass007`" and its length is 7. Note that neither "`test`" nor "`?xy1`" is a valid password, because "`?`" is not an alphanumerical character and "`test`" contains an even number of digits (zero).

Write a function:

Private Function solution(S As String) As Integer

`test 5 a0A pass007 ?xy1`", your function should return 7, as explained above.

Assume that:

- N is an integer within the range [1..200];
- string S consists only of printable ASCII characters and spaces.

** correctness**. The performance of your solution will not be the focus of the assessment.