[C++/アルゴリズム]プログラマの数字文字列と英語の単語


#include <string>
#include <vector>

using namespace std;

int solution(string s) {
    int answer = 0, num=0, index=0;

    string st[10] = {"zero", "one", "two", "three", "four", "five", "six",
                    "seven", "eight", "nine"};
    string str1[10] = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"};

    for(int i=0; i<10; i++){
       // 숫자 영문자열을 숫자문자열로 대체
        while(s.find(st[i]) != -1){
            index = s.find(st[i]);
            s.replace(s.find(st[i]), st[i].length(), str1[i]);
        }
    }

    for(int i=0; i<s.length(); i++){
        if(s[i] >=48 && s[i]<=57){
            num = s[i]-48;
            answer = answer*10 + num;
        }
    }

    return answer;
}
  • 文字列を数字に変換して答えに追加する方法が使用されています.
    他の解答を見て、答え=stoi(s);使い方は知ってる!