From 3d9d0c936f7d60d5e6d3c358e8ee25c7aa251f43 Mon Sep 17 00:00:00 2001 From: Vishwajeet-29-pro Date: Fri, 13 Sep 2024 08:44:54 +0530 Subject: [PATCH] feat: Add class and method to implement the algorithm for converting string to integer. Leetcode problem. --- .../dsa/leet_code/QuestionAtoIAlgorithm.java | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 JavaDsaWithTest/src/main/java/org/practice/dsa/leet_code/QuestionAtoIAlgorithm.java diff --git a/JavaDsaWithTest/src/main/java/org/practice/dsa/leet_code/QuestionAtoIAlgorithm.java b/JavaDsaWithTest/src/main/java/org/practice/dsa/leet_code/QuestionAtoIAlgorithm.java new file mode 100644 index 00000000..79258076 --- /dev/null +++ b/JavaDsaWithTest/src/main/java/org/practice/dsa/leet_code/QuestionAtoIAlgorithm.java @@ -0,0 +1,71 @@ +package org.practice.dsa.leet_code; + +public class QuestionAtoIAlgorithm { + /*. String to Integer (atoi) + + Implement the myAtoi(string s) function, which converts a string to a 32-bit signed integer. + + The algorithm for myAtoi(string s) is as follows: + + Whitespace: Ignore any leading whitespace (" "). + Signedness: Determine the sign by checking if the next character is '-' or '+', assuming positivity is neither present. + Conversion: Read the integer by skipping leading zeros until a non-digit character is encountered or the end of the + string is reached. If no digits were read, then the result is 0. + Rounding: If the integer is out of the 32-bit signed integer range [-231, 231 - 1], then round the integer to remain + in the range. Specifically, integers less than -231 should be rounded to -231, and integers greater than 231 - 1 should + be rounded to 231 - 1. + Return the integer as the final result. + + Example 1: + Input: s = "42" + Output: 42 + Explanation: + The underlined characters are what is read in and the caret is the current reader position. + Step 1: "42" (no characters read because there is no leading whitespace) + ^ + Step 2: "42" (no characters read because there is neither a '-' nor '+') + ^ + Step 3: "42" ("42" is read in) + ^ + Example 2: + Input: s = " -042" + Output: -42 + Explanation: + Step 1: " -042" (leading whitespace is read and ignored) + ^ + Step 2: " -042" ('-' is read, so the result should be negative) + ^ + Step 3: " -042" ("042" is read in, leading zeros ignored in the result) + ^ + Example 3: + Input: s = "1337c0d3" + Output: 1337 + Explanation: + Step 1: "1337c0d3" (no characters read because there is no leading whitespace) + ^ + Step 2: "1337c0d3" (no characters read because there is neither a '-' nor '+') + ^ + Step 3: "1337c0d3" ("1337" is read in; reading stops because the next character is a non-digit) + ^ + Example 4: + Input: s = "0-1" + Output: 0 + Explanation: + Step 1: "0-1" (no characters read because there is no leading whitespace) + ^ + Step 2: "0-1" (no characters read because there is neither a '-' nor '+') + ^ + Step 3: "0-1" ("0" is read in; reading stops because the next character is a non-digit) + ^ + Example 5: + Input: s = "words and 987" + Output: 0 + Explanation: + Reading stops at the first non-digit character 'w'. + */ + + public int myAtoi(String s) { + + return 0; + } +}