当前位置: 首页 > wzjs >正文

怎么看网站有没有做地图网络推广服务合同范本

怎么看网站有没有做地图,网络推广服务合同范本,湘潭大学迎新自助网站,wordpress模板fruit这道题是看的题解做出来了,因为博主太菜了,做不来。详细题解可以去看官方题解或者灵神题解。本篇博客只是作为一个知识记录。 题目: n 张多米诺骨牌排成一行,将每张多米诺骨牌垂直竖立。在开始时,同时把一些多米诺骨牌…

  这道题是看的题解做出来了,因为博主太菜了,做不来。详细题解可以去看官方题解或者灵神题解。本篇博客只是作为一个知识记录。

题目:

  n 张多米诺骨牌排成一行,将每张多米诺骨牌垂直竖立。在开始时,同时把一些多米诺骨牌向左或向右推。

       每过一秒,倒向左边的多米诺骨牌会推动其左侧相邻的多米诺骨牌。同样地,倒向右边的多米诺骨牌也会推动竖立在其右侧的相邻多米诺骨牌。

      如果一张垂直竖立的多米诺骨牌的两侧同时有多米诺骨牌倒下时,由于受力平衡, 该骨牌仍然保持不变。

        就这个问题而言,我们会认为一张正在倒下的多米诺骨牌不会对其它正在倒下或已经倒下的多米诺骨牌施加额外的力。

给你一个字符串 dominoes 表示这一行多米诺骨牌的初始状态,其中:

  • dominoes[i] = 'L',表示第 i 张多米诺骨牌被推向左侧,
  • dominoes[i] = 'R',表示第 i 张多米诺骨牌被推向右侧,
  • dominoes[i] = '.',表示没有推动第 i 张多米诺骨牌。

返回表示最终状态的字符串。

整个字符串无非四种情况:

1)L.....R,这种情况下,字符串不会发生改变

2)L.....L,这种情况下,全部变成向左

3)R.....R,这种情况下,全部变成向右

4)R.....L ,这种情况下,前一半变成右,后一半变成左

        具体思路:

        我们在原字符串的基础上添加一个首和尾“L”,“R”,这样就可以减少对边界情况的考虑。然后遍历整个新的字符串。在用一个变量,记录先前遇到的第一个“L”或者“R”

        ①如果遇到“.”,直接跳过就行

        ②如果在遍历过程中遇到的s[i]和是s[pre]中了,是不是就说明,满足上面的基本情况中的3和2.然后把对应的全部填充成和s[i]一样的就可以了。

        ③不中的话,就是另外的情况,其实我们只需要判断第四种情况,因为第1中情况不会发生什么变化:首先明确总的填充范围是 :pre + 1 到 i- 1,因为pre和i位置上的是确定的 不用你修改

        当pre和i之间的个数为偶数时,首先明确R的填充范围,就是前一半,即pre + 1 ~ (i - (pre+1))/2+1,然后明确L的填充范围,就是后一半,即(i - (pre+1))/2+2)~ i - 1;

        当pre和i之间的个数为奇数时,首先明确R的填充范围,就是前一半,即pre + 1 ~ (i - 1)/2; 然后明确L的填充范围,就是后一半,即(i - 1)/2 + 2 ~i - 1;

其实可以一种方式直接判断奇偶性:

        前一半为:pre + 1 ~ (pre + i -1)/2

        后一半为:(pre + i)/2 + 1 ~ i - 1;

实现:

C++:

class Solution {
public:string pushDominoes(string dominoes) {string s = "L" + dominoes + "R";int n = s.size();int pre = 0;for(int i = 1;i<n;i++){if(s[i]=='.'){continue;}else{if(s[i]==s[pre]){fill(s.begin() + pre + 1,s.begin() + i,s[i]);}else if(s[i]=='L'){fill(s.begin() + pre + 1,s.begin() + (pre + i + 1)/2,'R' );fill(s.begin() + (pre + i)/2 + 1,s.begin() + i ,'L');}pre = i;}}return s.substr(1,n-2);}
};

C#:

    public class Solution {public string PushDominoes(string dominoes) {//因为在C#中是不能直接修改字符串的 所以只能曲线救国了char[] s = ("L" + dominoes + "R").ToCharArray();//获取新的拼接好的字符串int size = s.Length;int pre = 0;for(int i = 1; i < size; i++) {if (s[i] == '.') {continue;} else {if (s[i] == s[pre]) {//L...L//R...RArray.Fill(s, s[i],pre + 1,i - pre - 1);} else if (s[i]=='L') {//R...LArray.Fill(s, 'L', (pre + i) / 2 + 1, i - ((pre + i) / 2 + 1));Array.Fill(s, 'R', pre + 1, (pre + i - 1) / 2 - pre);}}//即时更新pre = i;}//重新返回字符串return new string(s, 1, size - 2);}}

http://www.dtcms.com/wzjs/117895.html

相关文章:

  • 上门做网站幽默软文经典案例300
  • 一键免费建立网站nba西部排名
  • 河西网站建设公司河北百度seo关键词
  • 网站关键词排名100品牌营销推广策划公司
  • 百度做网站哪里可以学友链网站
  • 网站建设的威胁重庆发布的最新消息今天
  • 网站建设总体方案设计app推广拉新工作可靠吗
  • 建设网站的个人心得网站优化推广公司排名
  • 开发手机网站用什么语言长沙网站包年优化
  • 手机微信怎么建立公众号seo西安
  • 樟树网站开发厦门网站关键词推广
  • 社区网站如何做内容运营北京网站优化体验
  • 短视频素材下载网站 免费昆明网站seo公司
  • b2c跨境电商平台长沙seo排名扣费
  • 西安网站建设制作专业公司各大网站提交入口
  • 中国建设学会网站互联网推广怎么做
  • 电子商务网站建设方案目录国外搜索引擎排名百鸣
  • 武汉网站建设的价格专业培训seo的机构
  • 做网站的旅行社seo tdk
  • 新余做网站的优化关键词的方法正确的是
  • 做商业地产常用的网站怎么关键词优化网站
  • 江西汽车网站建设优化推广网站seo
  • 网站建设对企业影响有多大高清的网站制作
  • 重庆seo网络推广东莞关键词优化平台
  • 横沥做网站的电话新闻稿代写
  • 灰色链网站建设产品推广的渠道
  • 微信商城网站开发seosem是什么职位
  • 免费英文建设网站站长之家最新网站
  • 企业做国际站哪个网站好网络营销主要做些什么
  • csdn. wordpress慧达seo免登录发布