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

青岛做网站搜索关键词的方法

青岛做网站,搜索关键词的方法,东莞智通人才最新招聘,小程序商店目录 一、杨氏矩阵 二、字符串旋转 三、交换奇偶位 四、offsetof宏 总结 一、杨氏矩阵 有一个数字矩阵,矩阵的每行从左到右是递增的,矩阵从上到下是递增的,请编写程序在这样的矩阵中查找某个数字是否存在。 要求:时间复杂度…

目录

一、杨氏矩阵

二、字符串旋转

三、交换奇偶位

四、offsetof宏

总结


一、杨氏矩阵

有一个数字矩阵,矩阵的每行从左到右是递增的,矩阵从上到下是递增的,请编写程序在这样的矩阵中查找某个数字是否存在。

要求:时间复杂度小于O(N);

通过理解题目大意,我们可以随便先来一个每行从左到右是递增的数组

      就比如这个3x3的数组,我们如何在这个数组找到想要找的值呢,先输入要找的值k,然后再设定从哪个位置开始找,可以设置成x=0,y=最上方最右边的位置,这样比较好写,如果两个下标都从0开始的话,判断起来就比较麻烦;

      然后搞一个循环,规定下x,y的范围,如果要找的值大于a数组中x,y下标的值,x++,反则y--,执行完后就可以判断有没有找到了

#include<stdio.h>
int a[3][3] = { 1,2,3,4,5,6,7,8,9 };
void find(int k) {int x = 0, y = 2;while (a[x][y] != k &&x>=0&&y>=0&& x <= 2 && y <= 2) {if (a[x][y] < k) x++;else y--;}if (a[x][y] == k)printf("找到了,在下标%d %d\n", x, y);else printf("找不到\n");
}
int main() {int k;scanf("%d", &k);find(k);return 0;
}

二、字符串旋转

写一个函数,判断一个字符串是否为另外一个字符串旋转之后的字符串。

例如:给定s1 =AABCD和s2 = BCDAA,返回1

给定s1=abcd和s2=ACBD,返回0.

AABCD左旋一个字符得到ABCDA

AABCD左旋两个字符得到BCDAA

AABCD右旋一个字符得到DAABC

       对于给定的两个字符串,我们将第一个字符串进行旋转,不断拿出第一个字符,然后将第一个字符后面的字符向前移动一位,再将拿出来的字符放到最后,视为旋转一次,每一次旋转都与第二个字符串比对,如果相同就说明可以通过旋转得到,flag置为1,break掉,如果旋转n次flag也没有被置为1,那么输出0;

#include<stdio.h>
#include<string.h>void cmp(char*a1,char*a2,int n) {char tmp; int flag = 0;for (int i = 0; i < n; i++) {tmp = *a1;int j;for (j = 0; j < n - 1; j++) {*(a1 + j) = *(a1 + j + 1);}*(a1 + j) = tmp;if (strcmp(a1, a2) == 0) {flag = 1; break;}}if(flag)printf("1");else printf("0");
}
int main() {char a1[] = "AABCD";char a2[] = "BCDAA";int len = strlen(a1);cmp(a1, a2,len);return 0;
}

三、交换奇偶位

写一个宏,可以将一个整数的二进制位的奇数位和偶数位交换。

       使用宏交换奇偶位通常包括将一个整数的奇偶位进行交换。下面是一个示例的C语言宏定义,可用于交换奇偶位:

主要的思路是将奇数位保存后左移,偶数位保存后右移,最后或起来

#define SWAP_BITS(n) (n=((n & 0xaaaaaaaa) >> 1)| ((n & 0x55555555) << 1))
#include<stdio.h>
int main() {int x = 10;//00001010SWAP_BITS(x);//00000101printf("%d\n", x);return 0;
}

这个宏利用了位掩码来分别提取整数n的奇数位和偶数位,然后通过位移操作将它们交换,最终返回结果。

举个例子,如果输入一个8位的整数n=0b10101010(十进制的170),通过宏转换后会得到结果0b01010101(十进制的85)。

四、offsetof宏

offsetof是一个宏,用于计算结构体中某个成员相对于结构体首地址的偏移量。以下是一个简单的实现:

#define offsetof(type, member) ((size_t)(&((type *)0)->member))

这个宏定义中使用了一个空指针0来强制将结构体指针转换为0,然后通过取成员的地址来计算出偏移量。这个方法的原理是,C语言中对空指针取地址是合法的,但对其解引用是不合法的。

假设我们有一个结构体定义如下:

struct MyStruct {int member1;char member2;float member3;
};

如果我们想计算member2相对于结构体MyStruct首地址的偏移量,我们可以这样使用 offsetof 宏:

size_t offset = offsetof(struct MyStruct, member2);
printf("Offset of member2: %zu\n", offset);

在这个例子中,offset 的值将会是 sizeof(int),即4(假设int在你的平台上占4个字节)。

使用 offsetof 宏可以帮助我们在编写程序时方便地计算结构体成员的偏移量,特别是在处理底层编程或者实现通用数据结构时非常有用。


总结

关于本篇的内容就结束了,对你有帮助的可以点个赞支持一下

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

相关文章:

  • 网站图片链接怎么做的黄页推广引流网站
  • 自己建网站模板济南网站万词优化
  • 辽宁省住建厅建设网站网页设计制作网站教程
  • 桂林餐饮兼职网站建设如何做seo优化
  • 沈阳网站搭建网络营销优化推广
  • 宏润建设集团有限公司网站如何做一个自己的网页
  • 自己做的网站怎么推广网络营销促销方案
  • 免费国外网站江西seo推广软件
  • 上海网站建设套餐seo有哪些经典的案例
  • 网站病毒怎么做互联网平台有哪些
  • 营销型网站设计服务网上销售平台怎么做
  • 做私人网站nba最新消息新闻
  • 做网站私活网络营销方案策划
  • 企业建设网站优势关键词优化排名软件
  • 怎么用默认程序做网站成品网站建站空间
  • 网站开发税收标准百度信息流怎么做效果好
  • 学会网站建设吴中seo网站优化软件
  • 梁山县城市建设局网站中国今天刚刚发生的新闻
  • 临安城市建设公司网站营销策划方案
  • 网站设置怎么调百度seo sem
  • 汕头市通信建设管理局网站惠州市seo广告优化营销工具
  • 怎么做家具定制网站广州竞价托管代运营
  • 做外汇网站代理抖音seo代理
  • 圆柱滚子轴承企业网站建设百度客服24小时人工电话
  • 多个域名 指向同一个网站百度客服人工电话多少
  • 电脑上怎样进入中国建设银行网站企业营销策划实训报告
  • 服装网站怎么做行业数据统计网站
  • python线上编辑器手机优化管家
  • ps响应式网站设计尺寸海南百度总代理
  • 做营销网站建设知识营销