构建给定文本中最常用单词的ASCII图表.
规则:
a-z
和A-Z
(字母字符)作为单词的一部分.She
== she
为了我们的目的).the, and, of, to, a, i, it, in, or, is
澄清:考虑don't
:这将被视为在范围2不同"单词" a-z
和A-Z
:(don
和t
).
可选(现在正式更改规范为时已晚)您可以选择删除所有单字母"单词"(这可能会缩短忽略列表).
解析给定的text
(读取通过命令行参数指定的文件或管道输入;假设us-ascii
)并构建word frequency chart
具有以下特征的a:
width
表示单词的出现次数(频率)(按比例).附加一个空格并打印单词.bar
+ [space]
+ word
+ [space]
应始终<= 80
字符(确保考虑可能不同的条形和字长:例如:第二个最常见的单词可能要长得多)第一个虽然频率差别不大).在这些约束条件下最大化条宽,并适当缩放条(根据它们所代表的频率).一个例子:
这个例子的文本可以在这里找到(爱丽丝梦游仙境,刘易斯卡罗尔).
此特定文本将产生以下图表:
_________________________________________________________________________ |_________________________________________________________________________| she |_______________________________________________________________| …
考虑以下tetrominoes和空洞的比赛场地:
0123456789 I O Z T L S J [ ] [ ] # ## ## ### # ## # [ ] # ## ## # # ## # [ ] # ## ## [ ] # [ ] [==========]
比赛场地的尺寸是固定的.顶部的数字仅用于表示列号(也可参见输入).
1.您将获得一个特定的游戏区域(基于上述内容),该区域已经部分填充了四联蛋白(这可以在单独的文件中或通过标准输入提供).
样本输入:
[ ] [ ] [ ] [ ] [ # # #] [ ## ######] [==========]
2.您将获得一个字符串,该字符串描述(以空格分隔)哪个tetromino插入(和下拉)哪一列.Tetrominoes不需要旋转.输入可以从stdin读取.
样本输入:
T2 Z6 I0 T7
Run Code Online (Sandbox Code Playgroud)
您可以假设输入是"格式良好的"(或者当它不是时会产生未定义的行为).
渲染结果字段("完整"行必须消失)并打印分数计数(每个丢弃的行占10个点).
基于上面的示例输入的示例输出:
[ ] [ ] [ ] [# …
试图理解C中指针的行为,我对以下内容感到有点惊讶(下面的示例代码):
#include <stdio.h>
void add_one_v1(int *our_var_ptr)
{
*our_var_ptr = *our_var_ptr +1;
}
void add_one_v2(int *our_var_ptr)
{
*our_var_ptr++;
}
int main()
{
int testvar;
testvar = 63;
add_one_v1(&(testvar)); /* Try first version of the function */
printf("%d\n", testvar); /* Prints out 64 */
printf("@ %p\n\n", &(testvar));
testvar = 63;
add_one_v2(&(testvar)); /* Try first version of the function */
printf("%d\n", testvar); /* Prints 63 ? */
printf("@ %p\n", &(testvar)); /* Address remains identical */
}
Run Code Online (Sandbox Code Playgroud)
输出:
64
@ 0xbf84c6b0
63
@ 0xbf84c6b0 …
Run Code Online (Sandbox Code Playgroud) 你可能还记得你小时候的这些图画,但现在是时候让电脑画出来了(完整的ascii辉煌).玩得开心!
描述:
输入是多行(由换行符终止),描述"字段".这个领域散布着"数字"(由空格分隔).所有行都可以被认为是相同的长度(您可以将空格填充到末尾).
任务:
以这些数字的自然顺序
绘制线条(1 -> 2 -> 3 -> ...N)
(假设N <= 99),具有以下特征:
+
'字符替换数字-
'|
'/
\
重要笔记:
当绘制类型为4和5的线时,您可以假设(给定点与坐标x1,y1和x2,y2连接)distance(x1,x2) == distance(y1,y2)
.或换句话说(如用户jball评论):"非水平或垂直对齐的连续元素始终与斜杠或反斜杠的斜率对齐".
重要的是遵循点连接的顺序(较新的线可以击出较旧的线).
- 样本输入1 -
8 7 6 10 9 5 3 4 11 12 13 1 2
- 样本输出1 -
+ /| / +--+ +--------+ \ / \ / + / | / +--+ + | \ | +------------------------+ +--------------------------+
- …
本着"你最有用的C/C++代码片段"的精神- 线程:
你们有没有(通常)使用的简短的单功能Python片段,并希望与StackOverlow社区分享?请保持条目较小(可能在25行以下?)并且每个帖子只提供一个示例.
我将从一个简短的片段开始,我不时使用它来计算python项目中的sloc(源代码行):
# prints recursive count of lines of python source code from current directory
# includes an ignore_list. also prints total sloc
import os
cur_path = os.getcwd()
ignore_set = set(["__init__.py", "count_sourcelines.py"])
loclist = []
for pydir, _, pyfiles in os.walk(cur_path):
for pyfile in pyfiles:
if pyfile.endswith(".py") and pyfile not in ignore_set:
totalpath = os.path.join(pydir, pyfile)
loclist.append( ( len(open(totalpath, "r").read().splitlines()),
totalpath.split(cur_path)[1]) )
for linenumbercount, filename in loclist:
print "%05d lines in %s" % (linenumbercount, filename)
print …
Run Code Online (Sandbox Code Playgroud) 在重构PostgreSql函数时(更具体地说:在搜索'unused'函数时),有一个函数可以在函数定义中搜索特定的字符串.
有谁知道这是否是最好的方法(尝试'grep' - 搜索函数定义)还是有其他方法可用?
如何实现此功能?
我在另一个StackOverflow问题开始(在评论中)的讨论后开始这个问题,我很想知道答案.考虑以下表达式:
var objects = RequestObjects.Where(r => r.RequestDate > ListOfDates.Max());
Run Code Online (Sandbox Code Playgroud)
ListOfDates.Max()
在这种情况下,是否有任何(性能)优势可以移出Where子句的评估,还是1.编译器或2. JIT优化它?
我相信C#只会在编译时进行常量折叠,并且可以认为ListOfDates.Max()在编译时是不可知的,除非ListOfDates本身在某种程度上是常量.
也许还有另一个编译器(或JIT)优化,确保只评估一次?
假设我有一个如下所示的文本文件:
33 3
46 12
23 10 23 11 23 12 23 13 23 14 23 15 23 16 24 10 24 11 24 12 24 13 24 14 24 15 24 16 25 14 25 15 25 16 26 16 27 16 28 16 29 16
33 17 33 18 33 19 34 17 34 18 34 19 35 17 35 18 35 19 36 19
41 32 41 33 42 32 42 33
我想将每一行读入一个单独的整数数组,如(伪代码):
for line in textfile: …
Run Code Online (Sandbox Code Playgroud) 我正在使用ADO.NET和C#,我想将DataTable对象转换为DataRows数组.这样做的优雅方式是什么?
在将应用程序从.NET 3.5引入.NET 4.0时,我遇到了这个特殊的问题.
(文化是nl-BE)
我将这样的TextBox(在XAML中)与PropertyChanged上的UpdateSourceTrigger绑定到DateTime值(LostFocus按预期工作,但需要进行类型验证):
<TextBox Height="23" Margin="146,0,105,97.04" Name="txb_Geboortedatum" VerticalAlignment="Bottom">
<TextBox.Text>
<Binding Path="Geboortedatum" StringFormat="d"
UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<ExceptionValidationRule />
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>
Run Code Online (Sandbox Code Playgroud)
现在,当这个文本框的内容是(例如)10/12/2000并且我想将它编辑为09/03/1981 时,当我将光标放在2000年底并开始'退格时' 发生了一些令人讨厌的自动修正 '离开年份值(当只有'2000'的第一个数字('2')自动离开时 - 包括光标跳转 - 再次变为2002).我可以禁用此自动更正吗?
我似乎无法找到具体介绍此行为的内容.FormatString=c
对于货币值,也会出现相同的"问题" .
到目前为止我尝试过的:
{0}{dd/MM/yyyy}
(同样的问题:当剩下2位数字时开始自动更正).禁用我已添加到App.xaml.cs的以下代码段:
FrameworkElement.LanguageProperty.OverrideMetadata(
typeof(FrameworkElement),
new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(
CultureInfo.CurrentCulture.IetfLanguageTag)));
Run Code Online (Sandbox Code Playgroud)这个片段的原因首先包含在内:看一下这个链接.
我错过了一些明显的东西吗?我无法在3.5中重现这一点.我是否真的必须推出自己的ValueConverters才能使其正常工作?这看起来像是StringFormat
在3.5 sp 1中引入的退步.
DateTimeFormatInfo.CurrentInfo.GetAllDateTimePatterns('d')
确实的输出看起来略有不同,但没有什么可以立即解释行为(可能不相关):
.NET 3.5 .NET 4.0 d/MM/yyyy d/MM/yyyy d/MM/yy d/MM/yy dd-MM-yy dd-MM-yy dd.MM.yy dd.MM.yy yyyy-MM-dd dd.MMM.yyyy yyyy-MM-dd