String str is given which contains lowercase English letters and spaces. It may contain multiple spaces. Get the first letter of every word and return the result as a string. The result should not contain any space.
Examples:
Input : str = "geeks for geeks" Output : gfg Input : str = "geeks for geeks"" Output : hc
Source: https://www.geeksforgeeks.org/amazon-interview-set-8-2/
The idea is to traverse each character of string str and maintain a boolean variable, which was initially set as true. Whenever we encounter space we set the boolean variable is true. And if we encounter any character other than space, we will check the boolean variable, if it was set as true as copy that charter to the output string and set the boolean variable as false. If the boolean variable is set false, do nothing.
Algorithm:
1. Traverse string str. And initialize a variable v as true. 2. If str[i] == ' '. Set v as true. 3. If str[i] != ' '. Check if v is true or not. a) If true, copy str[i] to output string and set v as false. b) If false, do nothing.
Implementation:
C++
#include<bits/stdc++.h>
using
namespace
std;
string firstLetterWord(string str)
{
string result =
""
;
bool
v =
true
;
for
(
int
i=0; i<str.length(); i++)
{
if
(str[i] ==
' '
)
v =
true
;
else
if
(str[i] !=
' '
&& v ==
true
)
{
result.push_back(str[i]);
v =
false
;
}
}
return
result;
}
int
main()
{
string str =
"geeks for geeks"
;
cout << firstLetterWord(str);
return
0;
}
Java
class
GFG
{
static
String firstLetterWord(String str)
{
String result =
""
;
boolean
v =
true
;
for
(
int
i =
0
; i < str.length(); i++)
{
if
(str.charAt(i) ==
' '
)
{
v =
true
;
}
else
if
(str.charAt(i) !=
' '
&& v ==
true
)
{
result += (str.charAt(i));
v =
false
;
}
}
return
result;
}
public
static
void
main(String[] args)
{
String str =
"geeks for geeks"
;
System.out.println(firstLetterWord(str));
}
}
Python 3
def
firstLetterWord(
str
):
result
=
""
v
=
True
for
i
in
range
(
len
(
str
)):
if
(
str
[i]
=
=
' '
):
v
=
True
elif
(
str
[i] !
=
' '
and
v
=
=
True
):
result
+
=
(
str
[i])
v
=
False
return
result
if
__name__
=
=
"__main__"
:
str
=
"geeks for geeks"
print
(firstLetterWord(
str
))
C#
using
System;
class
GFG
{
static
String firstLetterWord(String str)
{
String result =
""
;
bool
v =
true
;
for
(
int
i = 0; i < str.Length; i++)
{
if
(str[i] ==
' '
)
{
v =
true
;
}
else
if
(str[i] !=
' '
&& v ==
true
)
{
result += (str[i]);
v =
false
;
}
}
return
result;
}
public
static
void
Main()
{
String str =
"geeks for geeks"
;
Console.WriteLine(firstLetterWord(str));
}
}
Javascript
<script>
function
firstLetterWord(str)
{
let result =
""
;
let v =
true
;
for
(let i = 0; i < str.length; i++)
{
if
(str[i] ==
' '
)
{
v =
true
;
}
else
if
(str[i] !=
' '
&& v ==
true
)
{
result += (str[i]);
v =
false
;
}
}
return
result;
}
let str =
"geeks for geeks"
;
document.write(firstLetterWord(str));
</script>
Time Complexity: O(n)
Auxiliary space: O(1).
Approach 1 : Reverse Iterative Approach
This is simplest approach to to getting first letter of every word of the string. In this approach we are using reverse iterative loop to get letter of words. If particular letter ( i ) is 1st letter of word or not is can be determined by checking pervious character that is (i-1). If the pervious letter is space (‘ ‘) that means (i+1) is 1st letter then we simply add that letter to the string. Except character at 0th position. At the end we simply reverse the string and function will return string which contain 1st letter of word of the string.
C++
#include <iostream>
using
namespace
std;
void
get(string s)
{
string str =
""
, temp =
""
;
for
(
int
i = s.length() - 1; i > 0; i--) {
if
(
isalpha
(s[i]) && s[i - 1] ==
' '
) {
temp += s[i];
}
}
str += s[0];
for
(
int
i = temp.length() - 1; i >= 0; i--) {
str += temp[i];
}
cout << str << endl;
}
int
main()
{
string str =
"geeks for geeks"
;
string str2 =
"Code of the Day"
;
get(str);
get(str2);
return
0;
}
Java
public
class
GFG {
public
static
void
get(String s)
{
String str =
""
, temp =
""
;
for
(
int
i = s.length() -
1
; i >
0
; i--) {
if
(Character.isLetter(s.charAt(i))
&& s.charAt(i -
1
) ==
' '
) {
temp
+= s.charAt(i);
}
}
str += s.charAt(
0
);
for
(
int
i = temp.length() -
1
; i >=
0
; i--) {
str += temp.charAt(i);
}
System.out.println(str);
}
public
static
void
main(String[] args)
{
String str =
"geeks for geeks"
;
String str2 =
"Code of the Day"
;
get(str);
get(str2);
}
}
Python3
def
get(s):
str
=
""
temp
=
""
for
i
in
range
(
len
(s)
-
1
,
0
,
-
1
):
if
s[i].isalpha()
and
s[i
-
1
]
=
=
' '
:
temp
+
=
s[i]
str
+
=
s[
0
]
for
i
in
range
(
len
(temp)
-
1
,
-
1
,
-
1
):
str
+
=
temp[i]
print
(
str
)
str
=
"geeks for geeks"
str2
=
"Code of the Day"
get(
str
)
get(str2)
Javascript
function
get(s) {
let str =
""
, temp =
""
;
for
(let i = s.length - 1; i > 0; i--) {
if
(s[i].match(/[a-zA-Z]/) && s[i - 1] ===
' '
) {
temp += s[i];
}
}
str += s[0];
for
(let i = temp.length - 1; i >= 0; i--) {
str += temp[i];
}
console.log(str);
}
const str =
"geeks for geeks"
;
const str2 =
"Code of the Day"
;
get(str);
get(str2);
Time Complexity: O(n)
Auxiliary space: O(1).
Approach 2: Using StringBuilder
This approach uses the StringBuilder class of Java. In this approach, we will first split the input string based on the spaces. The spaces in the strings can be matched using a regular expression. The split strings are stored in an array of strings. Then we can simply append the first character of each split string in the String Builder object.
Implementation:
C++
#include <bits/stdc++.h>
using
namespace
std;
string processWords(
char
*input)
{
char
*p;
vector<string> s;
p =
strtok
(input,
" "
);
while
(p != NULL)
{
s.push_back(p);
p =
strtok
(NULL,
" "
);
}
string charBuffer;
for
(string values : s)
charBuffer += values[0];
return
charBuffer;
}
int
main()
{
char
input[] =
"geeks for geeks"
;
cout << processWords(input);
return
0;
}
Java
class
GFG
{
private
static
StringBuilder charBuffer =
new
StringBuilder();
public
static
String processWords(String input)
{
String s[] = input.split(
"(\s)+"
);
for
(String values : s)
{
charBuffer.append(values.charAt(
0
));
}
return
charBuffer.toString();
}
public
static
void
main (String[] args)
{
String input =
"geeks for geeks"
;
System.out.println(processWords(input));
}
}
Python3
charBuffer
=
[]
def
processWords(
input
):
s
=
input
.split(
" "
)
for
values
in
s:
charBuffer.append(values[
0
])
return
charBuffer
if
__name__
=
=
'__main__'
:
input
=
"geeks for geeks"
print
(
*
processWords(
input
), sep
=
"")
C#
using
System;
using
System.Text;
class
GFG
{
private
static
StringBuilder charBuffer =
new
StringBuilder();
public
static
String processWords(String input)
{
String []s = input.Split(
' '
);
foreach
(String values
in
s)
{
charBuffer.Append(values[0]);
}
return
charBuffer.ToString();
}
public
static
void
Main()
{
String input =
"geeks for geeks"
;
Console.WriteLine(processWords(input));
}
}
Javascript
<script>
var
charBuffer =
""
;
function
processWords(input)
{
var
s = input.split(
' '
);
s.forEach(element => {
charBuffer+=element[0];
});
return
charBuffer;
}
var
input =
"geeks for geeks"
;
document.write( processWords(input));
</script>
Time Complexity: O(n)
Auxiliary space: O(1).
Another Approach: Using boundary checker, refer https://www.geeksforgeeks.org/get-first-letter-word-string-using-regex-java/
This article is contributed by Aarti_Rathi and Anuj Chauhan. If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
In this article we will discuss 5 different ways to convert first letter of each word in a string to uppercase. We will also discuss what are the limitations of each approach and which one is best for us.
Python Str class provides a member function title() which makes each word title cased in string. It means, it converts the first character of each word to upper case and all remaining characters of word to lower case.
Let’s use this to capitalize the first letter of each word in a string,
sample_text = "this is a sample string" # Capitalize the first letter of each word i.e. # Convert the first letter of each word to Upper case and all other to lower case result = sample_text.title() print(result)
Output:
Advertisements
This Is A Sample String
It worked fine with this solution, but there is a caveat. The title() function not only capitalize the first letter of each word in a string but also makes all remaining characters of each word to upper case. For example,
sample_text = "33a. it's GONE too far" # Capitalize the first letter of each word result = sample_text.title() print(result)
Output:
33A. It'S Gone Too Far
There are 3 unexpected behaviors in above example,
- In this example it converted “GONE” to “Gone”, because for each word in string it makes only first character as upper case and all remaining characters as lower case.
- It converted “it’s” to “It’S” , because it considered “it’s” as two separate words.
- It converted “33a” to “33A” , because it considered “a” as the first letter of word ’33a’.
So, title() function is not the best solution for capitalizing the first letter of each word in a string. Let’s discuss an another solution,
Use capitalize() to capitalize the first letter of each word in a string
Python’s Str class provides a function capitalize(), it converts the first character of string to upper case. Where as it is already in upper case then it does nothing.
We can use this capitalize() to capitalize the first letter of each word in a string. For that, we need to split our string to a list of words and then on each word in the list we need to call the capitalize() function. Then we need to join all the capitalized words to form a big string.
Let’s understand this with an example,
def capitalize_each_word(original_str): result = "" # Split the string and get all words in a list list_of_words = original_str.split() # Iterate over all elements in list for elem in list_of_words: # capitalize first letter of each word and add to a string if len(result) > 0: result = result + " " + elem.strip().capitalize() else: result = elem.capitalize() # If result is still empty then return original string else returned capitalized. if not result: return original_str else: return result sample_text = "33a. it's GONE too far" result = capitalize_each_word(sample_text) print(result)
Output:
33a. It's Gone Too Far
It converted the first letter of each word in string to upper case.
Instead of writing the big function, we can achieve same using generator expressions i.e.
sample_text = "33a. it's GONE too far" result = ' '.join(elem.capitalize() for elem in sample_text.split()) print(result)
Output:
33a. It's Gone Too Far
Here we split the string to words and iterated our each word in string using generator expression. While iterating, we called the capitalized() function on each word, to convert the first letter to uppercase and the joined that word to a string using ‘ ‘ as delimiter.
It served the purpose, but there can be one issue in this approach i.e. if words in original string are separated by more than one white spaces or tabs etc. Then this approach can cause error, because we are joining all capitalized words using same delimiter i.e. a single white space. Checkout this example,
sample_text = "this is a sample string" result = ' '.join(elem.capitalize() for elem in sample_text.split()) print(result)
Output:
This Is A Sample String
Here original string had multiple spaces between words, but in our final string all capitalized words are separated by a single white space. For some this might not be the correct behavior. So, to rectify this problem checkout our next approach.
Using string.capwords() to capitalize the first letter of each word in a string
Python’s string module provides a function capwords() to convert the first letter to uppercase and all other remaining letters to lower case.
It basically splits the string to words and after capitalizing each word, joins them back using a given seperator. Checkout this example,
import string sample_text = "it's gone tOO far" result = string.capwords(sample_text) print(result)
Output:
It's Gone Too Far
Problem with is solution is that it not only converts the first letter of word to uppercase but also makes the remaining letters of word to lower case. For some, this might not be the correct solution.
So, let’s discuss our final and best solution that does what’s only expected from it.
Using Regex to capitalize the first letter of each word in a string
Using regex, we will look for the starting character of each word and the convert to uppercase. For example,
import re def convert_to_uupercase(m): """Convert the second group to uppercase and join both group 1 & group 2""" return m.group(1) + m.group(2).upper() sample_text = "it's gone tOO far" result = re.sub("(^|s)(S)", convert_to_uupercase, sample_text) print(result)
Output:
It's Gone TOO Far
It capitalized only first character of each word in string and do not modifies the whitespaces between words.
How did it worked ?
We created use a pattern “(^|s)(S)”. It looks for string patterns that starts with zero or more whitespaces and then has a non whitespace character after that. Then for each matching instance, it grouped both initial whitespaces and the first character as separate groups. Using regex.sub() function, we passed each matching instance of the pattern to a function convert_to_uppercase(), which converts the second group i.e. first letter of word to upper case and then joins it with the first group(zero or more white spaces).
For string,
sample_text = "it's gone tOO far"
The function convert_to_uupercase() was called 4 times by regex.sub() and in each call group 1 & 2 of match object were,
'' and 'i' ' ' and 'g' ' ' and 't' ' ' and 'f'
Inside convert_to_uupercase(), it converted the second group i.e. first character of each word to uppercase.
So, this is how we can capitalize the first letter of each word in a string using regex and without affecting any other character of the string.
The complete example is as follows,
import string import re def capitalize_each_word(original_str): result = "" # Split the string and get all words in a list list_of_words = original_str.split() # Iterate over all elements in list for elem in list_of_words: # capitalize first letter of each word and add to a string if len(result) > 0: result = result + " " + elem.strip().capitalize() else: result = elem.capitalize() # If result is still empty then return original string else returned capitalized. if not result: return original_str else: return result def main(): print('*** capitalize the first letter of each word in a string ***') print('*** Use title() to capitalize the first letter of each word in a string ***') print('Example 1:') sample_text = "this is a sample string" # Capitalize the first letter of each word i.e. # Convert the first letter of each word to Upper case and all other to lower case result = sample_text.title() print(result) print('Example 2:') sample_text = "33a. it's GONE too far" # Capitalize the first letter of each word result = sample_text.title() print(result) print('*** Use capitalize() to capitalize the first letter of each word in a string ***') sample_text = "33a. it's GONE too far" result = capitalize_each_word(sample_text) print(result) print('Using capitalize() and generator expression') result = ' '.join(elem.capitalize() for elem in sample_text.split()) print(result) print('Example 2:') sample_text = "this is a sample string" result = ' '.join(elem.capitalize() for elem in sample_text.split()) print(result) print('*** Using string.capwords() to capitalize the first letter of each word in a string ***') sample_text = "it's gone tOO far" result = string.capwords(sample_text) print(result) print('*** Using Regex to capitalize the first letter of each word in a string ***') sample_text = "it's gone tOO far" result = re.sub("(^|s)(S)", convert_to_uupercase, sample_text) print(result) def convert_to_uupercase(m): """Convert the second group to uppercase and join both group 1 & group 2""" return m.group(1) + m.group(2).upper() if __name__ == '__main__': main()
Output:
*** capitalize the first letter of each word in a string *** *** Use title() to capitalize the first letter of each word in a string *** Example 1: This Is A Sample String Example 2: 33A. It'S Gone Too Far *** Use capitalize() to capitalize the first letter of each word in a string *** 33a. It's Gone Too Far Using capitalize() and generator expression 33a. It's Gone Too Far Example 2: This Is A Sample String *** Using string.capwords() to capitalize the first letter of each word in a string *** It's Gone Too Far *** Using Regex to capitalize the first letter of each word in a string *** It's Gone TOO Far
You can achieve this in a single expression, that would work with any number of words
regexp_replace(field_name,'(^| )(\w{1})[^ ]*','\2')
First, let’s note that we are using regexp_replace
to remove any char but the 1st of each word. If we use regexp_substr
, the search would stop at the 1st found occurence.
Let’s break it down: Anything between parenthesis is a capture group, which is numbered starting at 1.
(^| )
: the start of a string, or a space
(\w{1})
: followed by any word character, exactly once. —> this is the 1st letter of each word.
[^ ]*
: followed by any number (*
) of character that is not (^
) a space
\2
: replace everything from above with the 2nd capture group, i.e. the 1st letter of each word
PS: word beginning detection can certainly be improved with a bit more regex kungfu..
A word is contiguous series of alphabetic characters. Using regex, we need to search the boundary character to be between A to Z or a to z. Consider the following cases −
Input: Hello World Output: H W Input: Welcome to world of Regex Output: W t w o R
We’ll use the regex as «b[a-zA-Z]» where b signifies the boundary matchers. See the example −
Example
import java.util.regex.Matcher; import java.util.regex.Pattern; public class Tester { public static void main(String[] args) { String input1 = "Hello World"; String input2 = "Welcome to world of Regex"; Pattern p = Pattern.compile("b[a-zA-Z]"); Matcher m = p.matcher(input1); System.out.println("Input: " + input1); System.out.print("Output: "); while (m.find()){ System.out.print(m.group() + " "); } System.out.println("
"); m = p.matcher(input2); System.out.println("Input: " + input2); System.out.print("Output: "); while (m.find()){ System.out.print(m.group() + " "); } System.out.println(); } }
Output
Input: Hello World Output: H W Input: Welcome to world of Regex Output: W t w o R
If you are looking for an array formula to extract the first letter of each word in Google Sheets, find two formulas below. Among them, one is very tricky and easy to use.
To extract the first letter of each word, we usually follow the below steps in Google Sheets (I won’t follow it to write the array formula).
Let’s assume cell A2 contains the string “medium weight beam“.
I want to extract the letters “m”, “w”, and “b” and join them as an abbreviation like “mwb“.
Usually, we will solve the above problem USING SPLIT, LEFT, and JOIN as below and drag it down to apply to the string in the next row.
Steps (formula Explanation):-
1. We can use the SPLIT function to split the string into three parts based on the space delimiter.
=split(A2," ")
2. Then using the LEFT function, we can extract the first letter from each word.
=ArrayFormula(left(split(A2," "),1))
I’ve used the ArrayFormula within the above formula since we want to extract the first letter from more than one (split) word.
3. Just combine the result.
=JOIN("",ArrayFormula(left(split(A2," "),1)))
It is advisable to wrap the formula with IFERROR to avoid error incase of no values in A2.
The above is the best non-array method to extract the first letter of each word in Google Sheets.
But this formula has one problem.
Since we have used the JOIN function, we may find it difficult to code an array formula following the above method.
We can only use part of the formula that I’ll explain later.
Here I have two alternative solutions to the above problem. One is very tricky and easy to use than the above non-array one.
I’ve two formulas below titled Array Formula 1 and Array Formula 2.
I am recommending the array formula 1.
If you are not concerned about the case sensitivity of the extracted letters, use it. It is the easiest way to extract the first letter of each word in Google Sheets.
The Array Formula 1 will convert all the extracted letters to CAPS. If you want, you can make it SMALL (lower case).
Use the Array Formula 2 if you are looking for a case sensitive formula. I mean, the extracted letters will be the same as in the string. It won’t change the letters’ case.
Array Formula 1
Let’s consider the same string in cell A2, which is “medium weight beam”.
Here is the easiest way to abbreviate the above string in Google Sheets.
Steps:-
1. Use the PROPER function to make the first letter of each word capital and the rest of the letters small.
=proper(A2)
The result will be “Medium Weight Beam”.
2. Using REGEXREPLACE, we can extract only the capital letters from the above string.
=REGEXREPLACE(proper(A2),"[^A-Z]+","")
Since it doesn’t contain the JOIN function, we can easily make it an array formula.
=ArrayFormula(REGEXREPLACE(proper(A2:A),"[^A-Z]+",""))
Array Formula 2
To get one more array formula to extract the first letter of each word in Google Sheets, please follow the steps below.
Here, we will SPLIT the strings, then extract the first letter using LEFT. Instead of JOIN, we will use the QUERY to combine the extracted letters.
1. Let’s first FILTER the range A2:A to skip blank rows.
=filter(A2:A,A2:A<>"")
2. Split the filtered strings.
=ArrayFormula(split(filter(A2:A,A2:A<>"")," "))
3. Let’s extract the first letter in each word.
=ArrayFormula(left(split(filter(A2:A,A2:A<>"")," "),1))
4. Using the QUERY, we can combine the extracted letters. I’ve got a detailed tutorial on the use of QUERY for joining strings here – The Flexible Array Formula to Join Columns in Google Sheets.
How it works?
We can use the HEADER of QUERY for this. We will use an arbitrarily large number in the header. So, the QUERY will consider all the rows in the range are headers and combine them into a single row.
4.1. Use TRANSPOSE to change the orientation of the above formula result.
=TRANSPOSE(ArrayFormula(left(split(filter(A2:A,A2:A<>"")," "),1)))
4.2. Use the QUERY to combine the letters.
=query(transpose(ArrayFormula(left(split(filter(A2:A,A2:A<>"")," "),1))),,9^9)
4.3. Again transpose it.
=transpose(query(transpose(ArrayFormula(left(split(filter(A2:A,A2:A<>"")," "),1))),,9^9))
The above is the array formula to extract the first letter from each word in Google Sheets.
But wait. See the results. The Query leaves white spaces between the joined letters.
You can use REGEXREPLACE or SUBSTITUTE to remove them.
=ArrayFormula(substitute(transpose(query(transpose(left(split(filter(A2:A,A2:A<>"")," "),1)),,9^9))," ",""))
Note:- If you have blank cells between the values in A2:A, use the below formula. In this formula, I have omitted the FILTER and included IFERROR after the SPLIT.
=ArrayFormula(substitute(transpose(query(transpose(left(iferror(split(A2:A," ")),1)),,9^9))," ",""))
I hope you could understand how to extract the first letter of each word in Google Sheets.
Thanks for the stay. Enjoy!
-
#1
Hi All,
Am using the formula
Code:
[COLOR=#000000][FONT=lucida grande]=LEFT(LEFT(A1,FIND(" ",A1,1)),1)&LEFT(SUBSTITUTE(A1,LEFT(A1,FIND(" ",A1,1)),""),1)&LEFT(RIGHT(A1,FIND(" ",A1,1)-1),1)[/FONT][/COLOR]
to get first letter from each word in a cell..
If Cell A1 is «Excel Forum Questions», then in B1 am getting EFQ
Need to know any simpler formula to do this….
Also, if A1 is having variable words, like «Excel Questions», then it should give only EQ
Any suggestions please….
Return population for a City
If you have a list of cities in A2:A100, use Data, Geography. Then =A2.Population and copy down.
-
#2
Maybe slightly simpler, but not much . . .
Code:
=LEFT(A1,1)&MID(A1,FIND(" ",A1&" ",1)+1,1)&MID(A1&" ",FIND(" ",A1&" ",FIND(" ",A1&" ",1)+1)+1,1)
Returns EQ as specified.
Note, the [A1&» «] sections are important for dealing with shorter text examples, and the number of spaces between the » characters gradually increments. Post back if this doesn’t make sense.
-
#3
I’m not getting the same results with your formula,at least as posted.
How about a UDF?
The code below works for me in testing, it pulls the 1st letter of the string then any other characters that follow a space. It could be further tweaked to dissallow numbers & other non-letter characters from being pulled, but this works for your own examples.
Code:
Function PullFirstLetters(text) As String
'extract the first letters of each word in a sentence or string
mystring = Left(text, 1)
For i = 2 To Len(text) - 1
If Mid(text, i, 1) = " " Then
mystring = mystring & Mid(text, i + 1, 1)
End If
Next i
PullFirstLetters = WorksheetFunction.Substitute(UCase(mystring), " ", "")
End Function
-
#4
I’m not getting the same results with your formula,at least as posted.
Did you copy and paste it ? Or type it in manually ? If manually, perhaps you missed some space characters. I just tried it again and it seems to work for up to 3 words, and can be adapted for more.
-
#5
Sorry — I was referring to the OP’s formula.
(Your formula does work for me — at least up to 3 words which fall within the OP’s examples)
er 10 Write a word from Units 4-6 to match these meanings. The first letter of each word is given. 1 art lesson: a school subject which involves painting and drawing 2 b :you look through these to see things far away 3 coffein : it’s in coffee and tea and it makes you feel active : you make this when you decide to do something 5 e : a formal test 6 f drink: a drink with gas 7 8 : we play these (e.g. football, tennis) : students do this after school for 8h their teacher 9 i t : the subject of computers; what IT stands for 10 ____ f : food that isn’t healthy because it has lots of fat or sugar 11 first aid k : a bag of medicines, bandages, etc., to treat ill/injured people : books, poems, plays 12 1 13 m : a fast form of transport with two wheels 14 n_____________ :it’s got empty pages and you write notes in it 15 0 : connected to the internet 16 p. : a small round piece of medicine that you put in your mouth and swallow 17 r : a sport for which you have to wear special boots with wheels 18 s : a large boat that carries people or things across the sea : an electric street train 19 t :special clothes that students have 20 u to wear at school 21 V : potatoes, carrots, onions and peas are this type of food : clothes that don’t allow water to 22 w enter are this : an activity that helps relax the 23 y. body and mind