Как разрешить вызов участника при смещенном адресе? - PullRequest
0 голосов
/ 23 сентября 2019

У меня проблема с WordBreak II на leetcode.мой вопрос следующий Учитывая непустую строку s и словарь wordDict, содержащий список непустых слов, добавьте пробелы в s, чтобы создать предложение, где каждое слово является допустимым словарным словом.Возвратите все такие возможные предложения.

Я закодировал это следующим образом.

class Solution {
public:
vector<string> wordBreak(string s, vector<string>& wordDict) {   
unordered_set<string> st;
vector<string> res;
stack<string> ans;
for(auto i : wordDict)
{
    st.insert(i);
}
backtrack(s,st,res,ans);
return res;

}
void backtrack(string str,unordered_set<string> &st,vector<string> 
&res,stack<string>& ans)
{   if(str.length()==0){
    string xxx="";
    xxx+=ans.top();
    ans.pop();
    while(!ans.empty())
    {
      xxx=ans.top()+" "+xxx;
      ans.pop();
    }
    res.push_back(xxx);

    return;
    }
    for(int i=1;i<=str.length();i++)
    {
      string prefix=str.substr(0,i);
      if(st.find(prefix)!=st.end())
      { ans.push(prefix);
        backtrack(str.substr(i,str.length()-i),st,res,ans);
        ans.pop();
      }
    }
  }
};

, но когда я запускаю эту программу, я получаю этот тип ошибки,

Line 129: Char 22: runtime error: member call on misaligned address 
0xbebebebebebec09e for type 'struct basic_string', which requires 8 byte 
alignment (new_allocator.h)
0xbebebebebebec09e: note: pointer points here

iНе знаю, где я не прав, пожалуйста, помогите.

Я просто использую отслеживание.пожалуйста, скажите мне, где я не прав.

...