diff options
Diffstat (limited to 'other/largest_odd_num_string.cpp')
-rw-r--r-- | other/largest_odd_num_string.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/other/largest_odd_num_string.cpp b/other/largest_odd_num_string.cpp new file mode 100644 index 0000000..019d609 --- /dev/null +++ b/other/largest_odd_num_string.cpp @@ -0,0 +1,28 @@ +#include "leetcode.h" + +class Solution { +public: + string largestOddNumber(string num) { + if (num.back() == '0') + num.pop_back(); + int back = stoi(num) % 10; + if (back % 2 == 0) { + for (int i = 0; i < num.size(); i++) + if (num[i] % 2 == 0) + num.erase(i, 1), i--; + if (num.size() < 2) + return num; + else + for (int i = 0; i < num.size(); i++) + if (num[i] < num[i + 1]) + return num.substr(i + 2, 1); + } else + return num; + return string(); + } +}; + +int main() { + Solution obj; + cout << endl << obj.largestOddNumber("10133890"); +} |