aboutsummaryrefslogtreecommitdiff
path: root/other/largest_odd_num_string.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'other/largest_odd_num_string.cpp')
-rw-r--r--other/largest_odd_num_string.cpp28
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");
+}