2.改进 不需要对每个字符串,都进行二维数组的遍历,即先将给定字符串建立Trie树存下来,然后在遍历二维数组时找字符串
觉得自己是对的,但是超时了,跟别人对比代码觉得也没问题啊。。。 那么再后续解决吧
int orinal[4][2] = {{-1,0},{1,0},{0,-1},{0,1}};
string word;//如果这条分支上到达这个点已经是一个string了,就把这个string记录下来
TrieNode* buildTrie(vector<string>words){
TrieNode* p = new TrieNode();
for(int i = 0; i < words.size(); i++){
for(int j = 0; j < s.size(); j++){
if(root->next[s[j]-'a'] == NULL) root->next[s[j]-'a'] = new TrieNode();
root = root->next[s[j] - 'a'];
root->word = s;//在字符串的最后一个字符上存入字符串
void find_res(vector<vector<char>>board, TrieNode* p, int row, int col,vector<string>&res){
char c = board[row][col];
if(board[row][col]=='#' || p->next[c-'a'] == NULL) return;
//visit[row][col] = true;
p->word.clear(); //防止重复加入
int rows = board.size(), cols = board[0].size();
for(int i = 0; i < 4; i++){
int r = row + orinal[i][0];
int c = col + orinal[i][1];
if(r >= 0 && r < rows && c >= 0 && c < cols){
find_res(board, p, r,c, res);
//visit[row][col] = false;
vector<string> findWords(vector<vector<char>>& board, vector<string>& words) {
if(board.size() == 0 || board[0].size() == 0 || words.size() == 0) return res;
int col = board[0].size();
TrieNode* root = buildTrie(words);
//vector<vector<bool>>visit(row, vector<bool>(col, false));
for(int i = 0; i < row; i++){
for(int j = 0; j < col; j++){
find_res(board, root, i, j, res);

Aspose.Words 将word2中的内容插入到word1中的指定位置
将word2中的内容插入到word1中的指定位置(经测试可用)
在官网找到的例子,记录一下:
public static void InsertDocumentAtBookmark(string dataDir)
{
Document mainDoc = new Document(dataDir + "InsertDocument1.doc");
Document subDoc = new Document(dataDir + "InsertDocument2.doc");
//定位到书签:insertionPlace
Bookmark bookmark = mainDoc.Range.Bookmarks["insertionPlace"];
//将subDoc中的内容插入到mainDoc中的书签“insertionPlace”位置
InsertDocument(bookmark.BookmarkStart.ParentNode, subDoc);
dataDir = dataDir + "InsertDocumentAtBookmark_out.doc";
mainDoc.Save(dataDir);
}
/// <summary>
/// 在指定节点之后插入外部文档的内容。
/// 插入文档的分节符和节格式将被忽略。
/// </summary>
/// <param name="insertAfterNode">Node in the destination document after which the content
/// Should be inserted. This node should be a block level node (paragraph or table).</param>
/// <param name="srcDoc">The document to insert.</param>
static void InsertDocument(Node insertAfterNode, Document srcDoc)
{
// Make sure that the node is either a paragraph or table.
if ((!insertAfterNode.NodeType.Equals(NodeType.Paragraph)) &
(!insertAfterNode.NodeType.Equals(NodeType.Table)))
throw new ArgumentException("The destination node should be either a paragraph or table.");
// We will be inserting into the parent of the destination paragraph.
CompositeNode dstStory = insertAfterNode.ParentNode;
// This object will be translating styles and lists during the import.
NodeImporter importer = new NodeImporter(srcDoc, insertAfterNode.Document, ImportFormatMode.KeepSourceFormatting);
// Loop through all sections in the source document.
foreach (Section srcSection in srcDoc.Sections)
{
// Loop through all block level nodes (paragraphs and tables) in the body of the section.
foreach (Node srcNode in srcSection.Body)
{
// Let''s skip the node if it is a last empty paragraph in a section.
if (srcNode.NodeType.Equals(NodeType.Paragraph))
{
Paragraph para = (Paragraph)srcNode;
if (para.IsEndOfSection && !para.HasChildNodes)
continue;
}
// This creates a clone of the node, suitable for insertion into the destination document.
Node newNode = importer.ImportNode(srcNode, true);
// Insert new node after the reference node.
dstStory.InsertAfter(newNode, insertAfterNode);
insertAfterNode = newNode;
}
}
}

CSS技巧:word-wrap同word-break的区别
兼容 IE 和 FF 的换行 CSS 推荐样式
最好的方式是
以下是引用片段: word-wrap:break-word; overflow:hidden; |
而不是
以下是引用片段: word-wrap:break-word; word-break:break-all; |
也不是
以下是引用片段: word-wrap:break-word; overflow:auto; |
在 IE 下没有任何问题,在 FF 下,长串英文会被遮住超出的内容。
word-wrap同word-break的区别
word-wrap:
normal Default. Content exceeds the boundaries of its container.
break-word Content wraps to next line, and a word-break occurs when necessary. 必要时会触发word-break。
word-break:
normal Default. Allows line breaking within words. 好像是只对Asian text起作用。
break-all Behaves the same as normal for Asian text, yet allows the line to break arbitrarily for non-Asian text. This value is suited to Asian text that contains some excerpts of non-Asian text.
keep-all Does not allow word breaking for Chinese, Japanese, and Korean. Functions the same way as normal for all non-Asian languages. This value is optimized for text that includes small amounts of Chinese, Japanese, or Korean.
总结如下:
word-wrap是控制换行的。
使用break-word时,是将强制换行。中文没有任何问题,英文语句也没问题。但是对于长串的英文,就不起作用。
break-word是控制是否断词的。
normal是默认情况,英文单词不被拆开。
break-all,是断开单词。在单词到边界时,下个字母自动到下一行。主要解决了长串英文的问题。
keep-all,是指Chinese, Japanese, and Korean不断词。即只用此时,不用word-wrap,中文就不会换行了。(英文语句正常。)
ie下:
使用word-wrap:break-word;所有的都正常。
ff下:
如这2个都不用的话,中文不会出任何问题。英文语句也不会出问题。但是,长串英文会出问题。
为了解决长串英文,一般用word-wrap:break-word;word-break:break-all;。但是,此方式会导致,普通的英文语句中的单词会被断开(ie下也是)。
目前主要的问题存在于 长串英文 和 英文单词被断开。其实长串英文就是一个比较长的单词而已。
即英文单词应不应该被断开那?那问题很明显了,显然不应该被断开了。
对于长串英文,就是恶意的东西,自然不用去管了。但是,也要想些办法,不让它把容器撑大。
用:overflow:auto; ie下,长串会自动折行。ff下,长串会被遮盖。
所以,综上,最好的方式是word-wrap:break-word;overflow:hidden;而不是word-wrap:break-word;word-break:break-all;。
word-wrap:break-word;overflow:auto;在ie下没有任何问题。在ff下,长串会被遮住部分内容。
另,代码如下:
<style>
.c1{ width:300px; border:1px solid red}
.c2{ width:300px;word-wrap:break-word; border:1px solid yellow}
.c3{ width:300px;word-wrap:break-word;word-break:break-all; border:1px solid green}
.c4{ width:300px;word-wrap:break-word;word-break:keep-all; border:1px solid blue}
.c5{ width:300px;word-break:break-all; border:1px solid black}
.c6{ width:300px;word-break:keep-all; border:1px solid red}
.c7{ width:300px;word-wrap:break-word;overflow:auto; border:1px solid yellow}
</style>
.c1{ width:300px; border:1px solid red}
<div>asdasd
</div>
<div class=c1>
This is all English. This is all English. This is all English.
</div>
<div class=c1>
全是中文的情况。全是中文的情况。全是中文的情况。
</div>
<div class=c1>
中英文混排的情况。Chinese and English. 中英文混排的情况。Chinese and English.
</div>
<br>
.c2{ width:300px;word-wrap:break-word; border:1px solid yellow}
<div>
safjaskflasjfklsajfklasjflksajflksjflkasjfksafj
</div>
<div class=c2>
This is all English. This is all English. This is all English.
</div>
<div class=c2>
全是中文的情况。全是中文的情况。全是中文的情况。
</div>
<div class=c2>
中英文混排的情况。Chinese and English. 中英文混排的情况。Chinese and English.
</div>
<br>
.c3{ width:300px;word-wrap:break-word;word-break:break-all; border:1px solid green}
<div>
safjaskflasjfklsajfklasjflksajflksjflkasjfksafj
</div>
<div class=c3>
This is all English. This is all English. This is all English.
</div>
<div class=c3>
全是中文的情况。全是中文的情况。全是中文的情况。
</div>
<div class=c3>
中英文混排的情况。Chinese and English. 中英文混排的情况。Chinese and English.
</div>
<br>
.c4{ width:300px;word-wrap:break-word;word-break:keep-all; border:1px solid blue}
<div>
safjaskflasjfklsajfklasjflksajflksjflkasjfksafj
</div>
<div class=c4>
This is all English. This is all English. This is all English.
</div>
<div class=c4>
全是中文的情况。全是中文的情况。全是中文的情况。
</div>
<div class=c4>
中英文混排的情况。Chinese and English. 中英文混排的情况。Chinese and English.
</div>
<br>
.c5{ width:300px;word-break:break-all; border:1px solid black}
<div>
safjaskflasjfklsajfklasjflksajflksjflkasjfksafj
</div>
<div class=c5>
This is all English. This is all English. This is all English.
</div>
<div class=c5>
全是中文的情况。全是中文的情况。全是中文的情况。
</div>
<div class=c5>
中英文混排的情况。Chinese and English. 中英文混排的情况。Chinese and English.
</div>
<br>
.c6{ width:300px;word-break:keep-all; border:1px solid red}
<div>
safjaskflasjfklsajfklasjflksajflksjflkasjfksafj
</div>
<div class=c6>
This is all English. This is all English. This is all English.
</div>
<div class=c6>
全是中文的情况。全是中文的情况。全是中文的情况。
</div>
<div class=c6>
中英文混排的情况。Chinese and English. 中英文混排的情况。Chinese and English.
</div>
<br>
.c7{ width:300px;word-wrap:break-word;overflow:auto; border:1px solid yellow}
<div>
safjaskflasjfklsajfklasjflksajflksjflkasjfksafj
</div>
<div class=c7>
This is all English. This is all English. This is all English.
</div>
<div class=c7>
全是中文的情况。全是中文的情况。全是中文的情况。
</div>
<div class=c7>
中英文混排的情况。Chinese and English. 中英文混排的情况。Chinese and English.
</div>

IT面试技巧终身受益
面试前的准备
首先我们要穿的得体,因为第一印象对一个面试官来说真的很重要,如果我们面试的时候都不能以一种非常认真的态度去对待,那么可想而知其实我们离面试成功的路渐行渐远,当然这只是说第一印象,并不能代表你面试是否成功的全部,如果你是技术大牛,我想只要你有敏捷的思维,精湛的技术,良好的团队合作精神,那么面试也许对你来说并不是什么问题,我更多的是想对那些小白,或者是培训机构出来的it屌丝们说的!另外面试前一定要规划好面试地点的路线,最好提前半个小时出发,以免人在囧途,面试时迟到,这样给人的第一印象就不好,面试官可能会认为你上班估计也是这个样子吧!所以要提前准备好该准备的,这样我们就可以把更多的时间投入到与面试官斗志斗勇的当中去!
面试中注意的细节
面试中一般情况,面试官一般都会让你先进行自我介绍,这样他有足够的时间去阅读你的简历,所以自我介绍是一个很好的把自己推销出去的方式,让面试官对你有一个全面的了解,一般分为基本信息的介绍比如叫什么、来自哪、性格呀什么的因人而异,要想让面试官记住你就要表现出你的与众不同,一定要将自己的闪光点亮出来,闪瞎面试官的24k钛合金眼,比如大学期间获得过国家奖学金、参加过什么什么牛逼的比赛获得过什么奖,以及在大学有什么丰富的人生经历,让面试官觉得嗯这小子果然有两把刷子,这样他可能更像往下继续与你聊下去,对于面试it工作经历自然也少不了要介绍一下,我们一定要介绍清楚自己在项目中担任的角色,主要做哪些事情,自己在这个项目中的突出贡献是什么,这样才能体现你在这个团队中的价值,因为有些面试官喜欢问项目,有些面试官喜欢问技术点,所以这一块也要做好充分的准备,以及应对面试官后面的狂轰乱战,所以你说出来的项目技术点自己一定要清楚来龙去脉,如果你不清楚,或者只是知道这个概念,那么面试官对你的印象会瞬间从你刚才的丰富的人生阅历跌到低谷,怀疑你工作年限、甚至会怀疑你的工作经历造假,只是拿别人的项目放到你的简历上而已,这样就会造成你的面试成功的概率急剧下降,所以在介绍你的项目是千万别两句话就讲完了,让人觉得你好像并没有什么人生阅历一样。。。。在面试过程中我们要掌握主动权,这个真的很重要,你要尽量将面试官朝着你知道的地方引,让面试官从你引出的话题中继续提问,这样因为你提前做好了准备所以完全不用害怕,但是如果你等着面试官去问你,那么你可能要准备的更多去应对他可能提出的未知问题,这样当他问到你清楚的技术点的时候你可能就会不知所措,但是也不要慌!因为面试中不会其实也很正常的,但是不是说你什么都不会,那么你就直接被pass掉了,即使问道你不会的知识点也要表现的足够自信,你要告诉他遇到这种问题你的解决思路,工作中也会遇到新的技术我们不会不是说这个事情就不能做了,比如你可以说你是在遇到问题之后如何将问题解决掉的,这才是一个公司看重的,对于it人才快速的学习能力是很重要的,所以千万不要畏惧,表现的很不自信!
面试官的反问
你为什么要离开上一家公司
像这种问题,我们在面试前就应该想到并做好充分的准备,正所谓不打无准备之仗,兵来将挡水来土掩,我们只有事先做好充分的准备才能在真正荷枪实弹的场景下表现的从容淡定,千万不要因为自己本能应该获得工作的机会,因为自己的疏忽而离我们渐行渐远,在回答问题上也要注意,并不是说这个问题回答问了就算完了,一定要回答的要让面试官满意,比如你说你和上一家公司同事关系处的不好、上一家薪水给的太少、公司经常加班、公司压力太大、项目组人太少,项目根本不能在项目周期内完成等等这些回答看似很真实,但是并不是很好的答案,因为面试官觉得你这个人即使我们要了你,但是你在我们公司可能也待不长,或者工作中承受不住压力,不能很好的融入团队等,所以回答的时候一定不要说是公司的原因,人际关系处的不好,或者自身的某些缺点的原因上去回答,尽量从一些客观上的原因进行回答,这样更好一点,比如上一家公司的地方距离自己家乡太远了,自己爸妈希望自己在这边发展,或者自己女朋友也在这边上班所以想来这边发展,等等吧。。。
技术相关的问题
其实这方面,对于学的并不是很好的同仁或者工作经历欠缺的同仁,我想说的是在找工作的时候也千万不要害怕,很多人之所以面试失败还是在面试的过程中,觉得自己这也不会那也不会,都不是很精通,表现的很不自信,最后面试就以失败告终!还是那句话你要让他知道即使不会,你也可以在工作中,通过自己的学习,看一些技术博客,将问题很好的解决掉,让他能够看到你在工作中能够独立完成任务,能够很好的解决问题,能够独挡一面,这就好像你觉得一件事情,在自己看来根本不可能完成,那么你一定不可能在这件事中获得很好的结果,因为你在做之前就已经将自己否定了,即使你做了更多的还是抱有侥幸心理,所以我们凡是不要觉得不可能,我不行,我没有别人优秀等借口!来阻止自己继续向前,你一定要相信你自己,你只有把自己说服了,才有可能在面试中将面试说服,否则你有什么理由让面试官将这份offer给你呢,有拿什么相信你可以胜任这份工作呢?所以找工作更多的是靠能力和实力不是让你去说你经历过什么挫折,有多可怜,有种跪舔面试官的感觉,像卖不掉的秫秸,甚至像廉价推出去,如果你是这么想的,恭喜你廉价也不会有公司要你!因为公司也要生存!不会因为可怜就会将工作交给你,天下这么多可怜的人,那谁又可怜公司呢,毕竟公司也是以盈利为目的的!
你还有什么想问我的吗?
一般这个问题就代表面试即将结束,千万不要在最后因为前面的表现都很好,在这里翻了跟头,比如一些不好的问题千万不要问,比如公司加班吗?最晚可以几点到公司?这个职位的薪资待遇是多少?等等,这些都不是很好的回答,你可以从自己的职业规划来回答,比如贵公司会有相关的业务培训吗?假如我被贵公司录用了,你希望我在短期内解决哪些问题?你在贵公司工作多久了?您觉得让你在贵公司长期做下去的动力是什么?公司相关的技术团队有多少人?目前使用的什么框架?这个岗位的晋升路线是什么样子的?主要从哪些方面进行考核?等等。。。这些问题一方面可以让你了解这个公司是不是你想去的公司,另一方面也能让面试官觉得你是一个很爱学习的“三好学生”,有自己理想和自己职业规划的人,这样如果一轮面试下来没什么问题,面试官觉得你各方面表现的都还不错,那么恭喜你面试官可能就会和你谈offer的问题了,这样也就能水到渠成的拿到你要的offer!
未完后续会持续更新,解决你面试中遇到的困扰,可以在评论区留言你想问的问题,原创内容,转自请说明!!!!
原文出处:https://www.cnblogs.com/sui776265233/p/10096333.html
今天关于Word十技巧 受益终身和word终身会员的分享就到这里,希望大家有所收获,若想了解更多关于212. Word Search II 在二维字母表里找到给定word集合中的word子串、Aspose.Words 将word2中的内容插入到word1中的指定位置、CSS技巧:word-wrap同word-break的区别、IT面试技巧终身受益等相关知识,可以在本站进行查询。