subject
Computers and Technology, 01.12.2021 02:20 AshNo

Given two strings s and t, both consisting of lowercase English letters and digits, your task is to calculate how many ways exactly one digit could be removed from one of the strings so that s is lexicographically smaller than t after the removal. Note that we are removing only a single instance of a single digit, rather than all instances (eg: removing 1 from the string a11b1c could result in a1b1c or a11bc, but not abc). Also note that digits are considered lexicographically smaller than letters. Example
For s = "ab12c" and t = "1zz456", the output should be removeOneDigit(s, t) = 1.
Here are all the possible removals:
We can remove the first digit from s, obtaining "ab2c". "ab2c" > "1zz456", so we don't count this removal
We can remove the second digit from s, obtaining "ab1c". "ab1c" > "1zz456", so we don't count this removal
We can remove the first digit from t, obtaining "zz456". "ab12c" < "zz456", so we count this removal
We can remove the second digit from t, obtaining "1zz56". "ab12c" > "1zz56", so we don't count this removal
We can remove the third digit from t, obtaining "1zz46". "ab12c" > "1zz46", so we don't count this removal
We can remove the fourth digit from t, obtaining "1zz45". "ab12c" > "1zz45", so we don't count this removal
The only valid case where s < t after removing a digit is "ab12c" < "zz456". Therefore, the answer is 1.
For s = "ab12c" and t = "ab24z", the output should be removeOneDigit(s, t) = 3.
There are 4 possible ways of removing the digit:
"ab1c" < "ab24z"
"ab2c" > "ab24z"
"ab12c" < "ab4z"
"ab12c" < "ab2z"
Three of these cases match the requirement that s < t, so the answer is 3.
Input/Output
[execution time limit] 4 seconds (py3)
[input] string s
A string consisting of lowercase English letters and digits 0..9.
Guaranteed constraints:
1 ≤ s. length ≤ 103.
[input] string t
A string consisting of lowercase English letters and digits 0..9.
Guaranteed constraints:
1 ≤ t. length ≤ 103.
[output] integer
The number of ways to remove exactly one digit from one of the strings so that s is lexicographically smaller than t after the removal.
Please use Python
def removeOneDigit(s, t):
Sample test case
Input:
s: "ab12c"
t: "1zz456"
Output:
Expected Output:1
Test case 2
Input:
s: "ab12c"
t: "ab24z"
Expected Output:
3

ansver
Answers: 2

Another question on Computers and Technology

question
Computers and Technology, 22.06.2019 07:30
By refraining from constructing a building until they are certain that it will not cause harm to the environment, an organization is adhering to the
Answers: 2
question
Computers and Technology, 23.06.2019 00:00
Suppose you have 9 coins and one of them is heavier than others. other 8 coins weight equally. you are also given a balance. develop and algorithm to determine the heavy coin using only two measurements with the of the balance. clearly write your algorithm in the form of a pseudocode using the similar notation that we have used in the class to represent sorting algorithms
Answers: 1
question
Computers and Technology, 24.06.2019 06:50
What are the things you are considering before uploading photos on social media?
Answers: 1
question
Computers and Technology, 24.06.2019 19:00
In python a floating-point number must be written using scientific notation?
Answers: 1
You know the right answer?
Given two strings s and t, both consisting of lowercase English letters and digits, your task is to...
Questions
question
English, 05.11.2020 07:40
question
Biology, 05.11.2020 07:40
question
Social Studies, 05.11.2020 07:40
question
Mathematics, 05.11.2020 07:40
Questions on the website: 13722360