QString Utl::appendParam(const QString &url, const QMap<QString, QString> ¶ms) { QUrl retv(url); QMapIterator<QString,QString> it(params); bool aclFlag = false; while(it.hasNext()){ it.next(); QString k = it.key(); QString v = it.value(); if(k=="maxkeys"){ k="max-keys"; } if (!v.isNull()&&!v.isEmpty()){ retv.addQueryItem(k,v); } else if (k=="acl"){ aclFlag = true; } } QString tmp = QString::fromLocal8Bit(retv.toEncoded()); if(aclFlag){ if(retv.queryItems().size()!=0){ tmp+="&acl"; } else { tmp+="?acl"; } } //! @todo, Make Encoding More good. tmp.replace("+","%2B"); return tmp; // return aclFlag?retv.toString()+"&acl":retv.toString(); }
vector<vector<int>> threeSum(vector<int>& nums) { unordered_multiset<int> m; int p = 0; for (auto x : nums) m.insert(x); set<vector<int> > ret; if (nums.size() < 3) { vector<vector<int>> tmp; return tmp; } for (int i = 0; i < nums.size(); i++) { for (int j = 0; j < nums.size(); j++) { if (i == j) continue; bool ok = 1; if (m.count(-nums[i] - nums[j]) == 0) continue; if (-nums[i] - nums[j] == nums[i] && m.count(nums[i]) < 2) ok = 0; if (-nums[i] - nums[j] == nums[j] && m.count(nums[j]) < 2) ok = 0; if (nums[i] == nums[j] && -nums[i] - nums[j] == nums[i] && m.count(nums[i]) < 3) ok = 0; if (ok) ret.insert(_3Int2Vector(nums[i], nums[j], -nums[i] - nums[j])); } } vector<vector<int> > retv(ret.begin(), ret.end()); return retv; }
GameBoard Puzzle::to_game_board() const { GameBoard retv(m_impl->m_board, m_impl->m_variant); retv.sokoban_plus_set(m_impl->m_boxorder, m_impl->m_goalorder); return retv; }