我有一个国际电话号码列表和一个国家/地区电话代码列表。
我想从数字中识别国家/地区,但我找不到快速而优雅的方法来做到这一点。
任何想法?我唯一得到的是进行硬编码检查(例如,“查看第一个数字,查看第二个数字:如果是 X,则检查第三个数字。如果第二个数字是 Y,则国家/地区是 Foo”,等等.)。我使用 PHP 和 DB (MySQL) 作为列表,但我认为任何伪代码都会有帮助。
如果重新分配线程对象,是否正在运行的线程可以进行垃圾回收?例如:
class A(threading.Thread)
def run():
while True:
#Do stuff
a = A()
a.start()
time.sleep(60)
a = A()
Run Code Online (Sandbox Code Playgroud)
在这一点上,即使线程A仍然在做东西,解释器可以破坏原始的A()线程吗?如果确实如此,有没有办法防止这种情况发生?
我最近在C++技术面试中,给了我一些简单的字符串操作代码,它用于获取一个字符串并返回一个由第一个和最后一个n字符组成的字符串,然后继续纠正任何错误,并使功能尽可能高效,我想出了下面的解决方案,但面试官声称有一个更快,更优化的方式:
原始代码:
std::string first_last_n(int n, std::string s)
{
std::string first_n = s.substr(0,n);
std::string last_n = s.substr(s.size()-n-1,n);
return first_n + last_n;
}
Run Code Online (Sandbox Code Playgroud)
我的代码:
bool first_last_n(const std::size_t& n, const std::string& s, std::string& r)
{
if (s.size() < n)
return false;
r.reserve(2 * n);
r.resize(0);
r.append(s.data(),s.data() + n);
r.append(s.data() + (s.size() - n), s.data() + s.size());
return true;
}
Run Code Online (Sandbox Code Playgroud)
我的更改摘要:
更改接口以获取返回字符串作为参考(假设RVO和rvalues尚不可用)
删除了通过substr构造的临时字符串
将输入字符串作为const引用传递,以便绕过输入的临时实例化
修复了last_n字符串中的off-by-1错误
减少每个角色被触及一次或两次的次数(在重叠场景的情况下)
在字符串s的大小小于n的情况下放置一个检查,对于失败返回false.
假设只允许本机C++,是否有其他方法可以更有效或最佳地完成上述操作?
注1:不修改原始输入字符串实例.
注2:所有解决方案必须通过以下测试用例,否则它们无效.
void test()
{
{
std::string s = "0123456789";
std::string r = first_last_n(10,s); …Run Code Online (Sandbox Code Playgroud) 我的数据库中有一个表,其中每一行都有一个父ID,它是表中另一行的id(表表示树状结构).我想清空桌子.但是当我表演时
DELETE FROM table_name WHERE true;
Run Code Online (Sandbox Code Playgroud)
我收到一个错误(外键约束).如何清空桌子呢?
澄清:我想删除整个表的内容,而不是表本身.
我们有一个有点复杂的SQL更新查询,每月运行几次.它大部分时间似乎运行得非常快,但在某些数据库上,它需要很长时间.在所涉及的表上运行"UPDATE STATISTICS"后,更新会立即再次快速运行.我们最终设置了一个夜间任务,它在数据库中的所有表上调用UPDATE STATISTICS.但这似乎没有解决问题.我们最终还是必须每次手动运行"UPDATE STATISTICS".为什么统计数据会如此迅速地过时?
这是查询的大致内容:
UPDATE DataTableA
SET DataTableA.IndexedColumn1 = 123456789, DataTableA.Flag1 = 1
FROM DataTableA WITH (INDEX(IX_DataTableA))
INNER JOIN GroupingTableA ON GroupingTableA.ForeignKey1 = GroupingTableA.PrimaryKey
INNER JOIN LookupTableA ON DataTableA.ForeignKey3 = LookupTableA.PrimaryKey
LEFT OUTER JOIN GroupingTableB ON DataTableA.IndexedColumn2 = GroupingTableB.IndexedColumn2
WHERE GroupingTableB.IndexedColumn1 = 123456789
AND DataTableA.IndexedColumn1 IS NULL
AND DataTableA.IndexedColumn2 IN ( ... 300 entries here ... )
AND DataTableA.Deleted = 0
AND GroupingTableA.Date <= GroupingTableB.EndDate
AND GroupingTableA.Date >= DATEADD(month, -1, GroupingTableB.StartDate)
AND LookupTableA.Column2 = 1
AND DataTableA.Status1 IN (1, …Run Code Online (Sandbox Code Playgroud) 在Stack Overflow中有关于这个编辑器的两个问题,没有人回答!
所以我问如何将这个Django软件包安装到我的项目中?我已经按照这些步骤进行了操作,没有错误,没有任何错误,而且表单仍然保持不变.为什么??
编辑:继承人模型
from datetime import datetime
from django.db import models
from django.utils.translation import ugettext_lazy as _, ugettext
from ckeditor.fields import RichTextField
class Newsletter(models.Model):
title = models.CharField(
_(u'Title'),
max_length=200,
help_text=_(u'Newsletter title'),
)
body = RichTextField()
date = models.DateField(
_(u'Date'),
help_text=_(u'Set date when this newsletter should be send')
)
class Meta:
ordering = ['title',]
Run Code Online (Sandbox Code Playgroud)
forms.py
from models import Newsletter, Mail
class NewsletterForm(forms.ModelForm):
class Meta:
model = Newsletter
Run Code Online (Sandbox Code Playgroud)
视图:
from newsletter.models import Newsletter, Mail
from newsletter.forms import …Run Code Online (Sandbox Code Playgroud)
我有一个配置项目:
./main.cpp
./type_traints/TypeTraints.cpp
./type_traints/TypeTraints.hpp
./type_traints/chapter_20.hpp
Run Code Online (Sandbox Code Playgroud)
./type_traints/CMakeLists.txt文件是:
cmake_minimum_required (VERSION 2.8)
add_library(chapter_20 TypeTraints.cpp)
Run Code Online (Sandbox Code Playgroud)
和./CMakeLists.txt如下:
cmake_minimum_required (VERSION 2.8)
project (mpl)
add_subdirectory(type_traints)
include_directories(type_traints)
link_directories(type_traints)
add_executable (mpl main.cpp)
target_link_libraries(mpl chapter_20)
Run Code Online (Sandbox Code Playgroud)
文件的相关部分(大多数包括省略)包括:
./ type_traints /chapter_20.hpp
#ifndef CHAPTER_20_GUARD
#define CHAPTER_20_GUARD
#include <TypeTraints.hpp>
void chapter_20() {
test_23();
}
#endif //CHAPTER_20_GUARD
Run Code Online (Sandbox Code Playgroud)
./type_traints/TypeTraints.hpp
#ifndef TYPE_TRAINTS_GUARD
#define TYPE_TRAINTS_GUARD
namespace details {
template<class T> const char* class2name() {
return "unknown";
};
template<> const char* class2name<int>() {
return "int";
};
}
template<class T>
class type_descriptor {
friend std::ostream& operator << (std::ostream& stream,
const …Run Code Online (Sandbox Code Playgroud) 我想从字符串中删除charecters.示例:我有一个应用程序,当用户检查其构建sql脚本的复选标记时,所以如果他们检查女性它会添加到字符串And Gender = 'Female'.如果他们选择男性,它会补充And Where gender = 'Male'.当脚本检查时添加到字符串时脚本运行良好,但是当您取消选中项目时,我不知道如何删除检查时添加的字符.我试过.Replace .ReplaceAll,所有其他的替换.我知道我要删除的字符串,为什么不用它替换它"".
String SQL;
SQL += " AND Gender = 'Female'";
SQL.Replace("AND Gender = 'Female'","");
Run Code Online (Sandbox Code Playgroud)
这不行!
在Ruby on Rails应用程序中,我有一个控制器,我想要一些有条件运行的功能,其中条件取决于运行应用程序的环境.作为一个人为的例子,在开发模式中我喜欢它做:
if foo == 5:
...
end
Run Code Online (Sandbox Code Playgroud)
在生产模式中,我想:
if foo > 6:
...
end
Run Code Online (Sandbox Code Playgroud)
两个条件之间的差异比单个常数(上例中的5或6)更复杂.
在Rails中最常用的方法是什么?我会直接在environments/文件中编写辅助方法吗?或者向应用程序控制器添加一个检查当前环境的方法?或者是其他东西?
ruby environment ruby-on-rails helpers conditional-statements
最近在工作中需要python命令行实用程序,我没有编写cli的经验.无论如何,我仍然必须将它们弹出.
我最大的障碍是这些计划的结构.此外,获取和验证来自用户的输入的方法.我一直在以非常宽松的循环结束,我只是不认为这是最有效的方法.
有人可以提供我可能选择的开源cli程序的链接以获得一些理解吗?或者,我可以得到的书籍,教程等.我已经挖了但没有成功(我的谷歌技能必须缺乏).
c++ ×2
python ×2
string ×2
ckeditor ×1
definition ×1
delete-row ×1
django ×1
environment ×1
foreign-keys ×1
helpers ×1
java ×1
mysql ×1
optimization ×1
phone-number ×1
ruby ×1
sql-server ×1
statistics ×1
templates ×1