- Class: define a class to resolve the problem
- Constructors: initializing values when object is created
- Methods: define methods to expose functionalities
- Argument: constructor and methods takes values as arguments
- Strings: input of problem is a
String
- Integer: work with integer values
- Assignment: assign some objects to local variables
- Variables: define references to structures
- Static Variables: define static references
- Loops: iterate on input and structures
- Return values: methods should return requested values
- Regular Expression: use expressions to split the input
- Arrays: use multidimensional arrays to manipulate the input